阎惜娇扮演者,帅老网,闪客巫师
问题描述:将任意偶数拆分为两个素数之和。
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"); }
如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复
如何在没有core文件的情况下用dmesg+addr2line定位段错误
用QT制作3D点云显示器——QtDataVisualization
网友评论