编写一个程序,找出1-100中的所有素数,并按5个一行输出。c语言

如题所述

#include<stdio.h>
#include<math.h>
int main()
{
int a;
scanf_s("%d", &a);//输入要求的数字大小
int num, i, b, flag = 0;
for ( b = 2; b <= a; b++)
{
num = sqrt(b);
for ( i = 2; i <= num; i++)
{
if (b % i == 0)
break;
}
if (i > num)
{
printf("%d\t", b);
flag++;
if (flag % 5 == 0) {
printf("\n");

}
}  
}
printf("\n");
return 0;
}

温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-02-14
#include <stdio.h>

int main()
{
  int i, k, n = 0, isprime;
  for (i = 2; i <= 100; i++)
  {
    isprime = 1;
    for (k = 2; k < i; k++) if (i % k == 0) { isprime = 0; break; } 
    if (isprime) printf("%d%c", i, ++n % 5 ? ' ' : '\n');
  }
  return 0;
}

第2个回答  2016-11-28
#include<stdio.h>
void main() { int i,j,n,b;
for ( i=1,n=0;i<=100;i++ ) {
for ( j=2,b=1;j<=i/2;j++ ) if ( i%j==0 ) { b=0; break; }
if ( b ) { printf("%d ",i); n++; if ( n%5==0 ) printf("\n"); }
}
printf("\n");
}
第3个回答  2016-11-28
#include<stdio.h>
int main()
{
int i,k,n,x;
for(i=2;i<=100;i++)
{
k=i/2;
for(x=2;x<=k;x++)
if(i%x==0)
{x=0;break;}
if(x==k+1)
{
printf("%d\t",i);
n++;
}
if(n==5)
{
printf("\n");
n=0;
}
}
return 0;
}追答

#include
int main()
{
int i,k,n,x;
for(i=2;i<=100;i++)
{
k=i/2; //领判断终点为被判断数的一半
for(x=2;x<=k;x++)
if(i%x==0) //判断被判断数能否被除开
{x=1;break;} //被判断数不是素数,跳出循环
if(x==1)
continue; //不是素数执行下一遍循环
else{
printf("%d\t",i); //是素数,输出
n++; //变量n表示每一行当前输出个数
}
if(n==5) //如果n是5,表示输出了5个数了
{
printf("\n"); //输出换行符
n=0; //重新赋值n
}
}
return 0;
}

如有疑问,请您追问

本回答被网友采纳
相似回答