当前位置: 移动技术网 > IT编程>开发语言>C/C++ > 偶数拆分问题

偶数拆分问题

2019年04月28日  | 移动技术网IT编程  | 我要评论

阎惜娇扮演者,帅老网,闪客巫师

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

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");
}

 

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网