为什么输出了两个相同的结果呀,关于求孪生素数的,求指点指点不知道问题出在哪。
if(b-a==2)这个代码块要放到if(j==i)代码块中才对
代码里a b没有复位,当-对输出完了之后,在没找到下一对素数之前,a b需要复位。
在第7行前面插入一行,a = 0; b = 0;
哦 前10对啊 我改下
#include <stdio.h>
#include <math.h>
int Prime(int n);//定义函数,判断是否为素数。
int main()
{
int i=2;//定义变量
int count=10;
while(count!=0)
{
if (Prime(i)&&Prime(i+2)) //调用Prime()函数,
{
printf("(%ld,%ld)\n", i, i+2);
count--;
}
i++;
}
return 0;
}
int Prime(int n)
{
int i;
for ( i = 2; i <= sqrt(n); i++) //若数为素数,则存在一个因数i属于(2,sqrt(n))
{
if (n % i == 0)
{
return 0; //若不是素数,返回0 ;
}
}
return 1;//是素数,返回1;
}