测试整数n为两个质数的和。
#include<stdio.h>#include<math.h>
#define START 700
int is_prime(int n);
int main(void)
{
int i,j;
for(i=1;i<=START/2;i++)
{ j=START-i;
if(is_prime(i) && is_prime(j))
printf("%d = %d + %d\n",START,i,j);
}
}
int is_prime(int n)
{
int k,m,value;
m=(int)sqrt(n);
for(k=0;m-k>1;k++)
if(n%(m-k)==0)
value=0;
else value=1;
return value;
}
is_(int n)是一个判断是否为质数的函数,我想调用它来测试每个大于2的整数n都可以写成两个质数的和。(因为过了一半之后就是重复的了,所以START/2),可是编译结果会输出并不是质数的两个数相加。。不知道哪个地方出错了,求指教。。。