用c语言求3到200之间所有素数,输出要求5个一行。

2024-12-27 08:38:32
推荐回答(2个)
回答1:

遍历3~200之间的所有奇数,直接判断其是否为素数,是则输出。用一初值为0的变量t记录输出素数的个数,每输出一个增1,当t能被5整除时增加一个回车。代码如下:

#include 
int main(int argc,char *argv[]){
int n,m,t;
for(t=0,n=3;n<200;n+=2){//遍历3~200之间的奇数
for(m=3;m*m<=n;m+=2)//若有1和自身以外的因子则非素数
if(n%m==0)
break;
if(m*m>n)//输出素数
printf(++t%5 ? "%4d" : "%4d\n",n);//由++t%5控制每行5个
}
if(t%5)//若最后一行不足5个数则补一个换行
printf("\n");
return 0;
}

运行结果如下图:

回答2:

int g = 1;
    for(int i = 3; i <= 200; i++) {
        int flag = 1;
        for (int j = 2; j < i; j++) {
            if (i % j == 0) {
                flag = 0;
                break;
            }
        }
        if (flag) {
        printf("%4d", i);
        g++;
        if(g == 5) {
            g = 1;
            printf("\n");
        }
        }
    }