全心思齐网

c语言编程输出100以内的质数?

#include<stdio.h>

int main()

{

int i,j;

int count=0;

for(i=2;i<100;i++)

{

for(j=2;j<=i/2;j++)

if(i%j==0)//如果i能被j整除 就不是质数 退出循环

break;

if(j>i/2)

{

count++;

printf("%-3d",i);

if(count%5==0)//当每一行有5个数时 换行

printf("\n");

}

}

return 0;

}

for(j=2;j<=i/2;j++)中的 j<=i/2是表示 从j=2开始遍历到j=i/2 看看2~i/2中能否整除i

如果都不能 说明i是质数(也就是j>i/2)

如果有1个及以上能整除i 说明i不是质数

for()

{

}

//for循环结束之后 j的值是大于i/2的 因为for循环的条件是:j<=i/2

//因此 当j>i/2时 for循环结束

if(j>i/2)

这里当且仅当2~i/2都不能整除i时 也就是j>i/2 才说明i是质数

匿名回答于2020-08-04 05:42:19


相关知识问答