输出1000对孪生素数

#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;
}
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值