c编程输出所有的三位素数,要求每行输出六个

如题所述

用一循环遍历100~1000间的奇数,直接判断这些奇数是否有1和自身以外的因子,无则确定为素数并输出。用一变量记录输出素数的个数,当个数能被6整除时输出一个换行,否则输出间隔。代码如下:

#include "stdio.h"
int main(int argc,char *argv[]){
int i,l,n;
for(l=0,i=101;i<1000;i+=2){//遍历100~1000间的奇数
for(n=3;n*n<=i;n+=2)//检查有无大于1小于自身的因子
if(i%n==0)//有大于1小于自身的因子则不是素数
break;
if(n*n>i)//没有上述因子则是素数并输出
printf(++l%6 ? "%4d" : "%4d\n",i);//由++l%6控制每行输出6个
}
if(l%6)
printf("\n");
return 0;
}

运行结果如下:

温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-11-06

#include <stdio.h>

int main()

{  int  i, j, n = 0;

    for(i = 100; i <1000; i++) {

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

        if(i % j == 0)  break;

      if(j == i/2) {

        printf("%d ", i);

        n++;

        if(n % 6 == 0) 

          printf("\n");

      }

    }

    printf("\n");

    return 0;

}

本回答被网友采纳
第2个回答  2015-11-06
#include <stdio.h>
 
int main()
{
    int  i, j = 0, n;
    for(n = 100; n <= 999; n++) {
      
      for(i = 2; i < n; i++)  
        if(n % i == 0)  break;
      if(i == n) {
        printf("%d ", n);
        j++;
        if(j >= 6)  {
          printf("\n");
          j = 0;
        }
      }
    }
    printf("\n");
    return 0;
}

相似回答