设为首页 加入收藏

TOP

偶数拆分问题
2019-05-23 14:36:08 】 浏览:58
Tags:偶数拆分 问题

问题描述:将任意偶数拆分为两个素数之和。

tip:素数:对于任意整数n,如果除1和n外不能被其他数整除,则称n为一个素数。

解决思路:

      一、素数判定:1.对于任意大于1的整数n,用n分别除以2到n-1,如果余数全不为零,则称n为一个素数

             2.对于任意大于1的整数n,用n分别除以2到根号n,如果余数全不为零,则称n为一个素数

      二、设输入的偶数为n,n=a+b 用上述方法判定a、b是否为素数即可。

代码如下:

已在VS2010中编译完成。

#include<stdio.h>
#include<stdlib.h>
#include<math.h>
void main()
{
 int a,d,flag=0;
 float b,c;
loop:
 {
  printf("请输入一个偶数:\n");
  scanf("%d",&a);
 }
 if(a%2!=0)
  goto loop;
 for(b=2;b<=a/2;b++)
 {
  for(d=2;d<=sqrt(b);d++)
   if((int)b%d==0)
    break;
  if (d>sqrt(b))
   c=a-b;
  else continue;
  for(d=2;d<=sqrt(c);d++)
   if((int)c%d==0)
    break;
  if (d>sqrt(c))
  {
   printf("%d = %d + %d\n",a,(int)b,(int)c);
   flag=1;
  }
  else continue;
 }
 if((int)flag==0)
  printf("不能拆分\n");
 system("pause");
}

 

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇输出学生成绩 下一篇关于链表初始化中为何使用二级指..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目