输出100~200以内的素数
#include<stdio.h>
#include<math.h>
int main()
{
int n, i;
//用n来进行100到200的自动增殖,i用来检测2~sqrt(n)的范围内n是否有因数,因此,i也需要增殖,从2设置起,因为每个合数也都有1这个因数
n = 100;//赋值
while (n <= 200)//n的循环条件,上限200 ,当n>200时,停止循环
{
for (i = 2; i < sqrt(n); i++)
//循环嵌套是先从里面的循环开始的,所以大条件要放在最外面,关于sqrt(n),如果n是一个合数,那它肯定有较大的一个因数
{ //(接上)也会有较小的一个因数,而较小的一个因数,是肯定<sqrt(n)的,所以只要检索<小于sqrt(n)的因数就可以了,以便提高效率
if (n%i == 0)i = n;
//如果n/i=0,那么i是n的因数,那证明n有1和自身以外的因数,那n就不是素数,所以让i=n,跳出小循环,进入大循环,n增殖,重来
else i = i + 1;
//如果不等于0,表明目前的i不是n的因数,自动增殖,再次进入小循环,直到循环完i<sqrt(n)的所有值,如果都不是n的因数
} //(接上)那么证明n是个素数,再次循环i++,使i>sqrt(n)跳出小循环,准备输出
if (i < n)printf(“100~200以内的素数为:%d\n”, n);
//设置一个便于输出n的条件,随便什么条件,只要能输出就行
n = n + 1;
//n自动增殖,再次进入循环,检测下一个n
}
return 0;
}
2021-04-09
最新推荐文章于 2022-10-25 17:55:10 发布