#include<stdio.h>
int main()
{
//功能:输出1000对孪生素数
//j从2递增到数字number,判断是否为他的因数
int j;
//从2开始递增判断素数
int number = 2;
//计数变量time
int time = 1;
//标志变量FLAG,如果是number是素数为1,否则为0
int FLAG = 1;
while (time <= 1000)
{
//判断number是否存在除了1和本身的因数
//注意在这里如果number==2,是无法进入第二个判断的,需要分类讨论,此处不影响功能,不再实现
/*
if (number == 2)
{
}
*/
//number>2的条件
for (j = 2; j < number; j++)
{
//若存在,说明number不是素数,FLAG赋值为0
if (number % j == 0)
{
FLAG = 0;
break;
}
}
//FLAG为1的时候,说明number为素数,进而判断number+2是否为素数
if (FLAG)
{
//判断number+2是否存在除了1和本身的因数
for (j = 2; j < number+2; j++)
{
//若存在,说明number不是素数,FLAG赋值为0
if ((number + 2) % j == 0)
{
FLAG = 0;
break;
}
}
//执行完判断以后,如果FLAG仍为1,说明number+2也是素数,满足孪生素数的定义
if (FLAG)
{
//输出这对孪生素数
printf("第%d对孪生素数: %d %d\n", time, number, number + 2);
//计数变量+1
time++;
}
}
//number 和number+2判断完成以后,number递增,直到输出一千对
number++;
/*
敲黑板!
执行完一次循环以后,一定要记得把FLAG标志位恢复!!
*/
FLAG = 1;
}
return 0;
}
输出1000对孪生素数
最新推荐文章于 2023-12-14 19:40:08 发布