1093: 验证哥德巴赫猜想(函数专题)
Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 5511 Solved: 3922
Submit Status Web Board
Description
哥德巴赫猜想大家都知道一点吧。我们现在不是想证明这个结论,而是对于任给的一个不小于6的偶数,来寻找和等于该偶数的所有素数对。做好了这件实事,就能说明这个猜想是成立的。
要求程序定义一个prime()函数和一个main()函数,prime()函数判断一个整数n是否是素数,其余功能在main()函数中实现。
int prime(int n)
{
//判断n是否为素数, 若n为素数,本函数返回1,否则返回0
}
Input
一个偶数M (M是6到1000000之间的一个偶数).
Output
输出和等于该偶数的所有素数对a和b,按a递增的顺序输出,(a,b)和(b,a)被视为同一个素数对。
Sample Input
40
Sample Output
3 3711 2917 23
HINT
Source
#include <stdio.h>
#include <math.h>
int sushu(int i)
{
int q=0,c,j;
c=(int)sqrt(i);
for(j=2;j<=c;j++)
{
if(i%j==0)
{
q=1;
}
}
return q;
}
int main()
{
int i,k,w,e,num;
scanf("%d",&num);
for(i=3; i<=num/2; i=i+2)
{
w=0;
e=0;
w=sushu(i);
if(w==0)
{
k=num-i;
e=sushu(k);
}
if(w==0&&e==0)
printf("%d %d\n",i,k);
}
return 0;
}