编写一个程序,输出1~1000之内所有的素数(注意:素数即质数)及个数(C语言)

如题所述

源代码如下:

#include <stdio.h>

#include <math.h>

void main()

int n=0, i, j,w,k;

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

w=1;

k=sqrt(i);

for (j=2; j<=k; j++)

if (i%j==0) {w=0;break;}

if (w) {

++n;

if (n%10==0) printf("%d\n",i);

else printf("%d\t",i);

}

扩展资料

1、素数使用for循环查找2-1000以内的所有素数,循环次数为999次,在for循环中添加一个移位寄存器用以存储所有的素数,其初始值为一个空数组。

2、在循环内部逐个数判断是否为素数,若是素数,则使用"数组插入.vi"函数添加到移位寄存器的数组中,否则,移位寄存器中的值保留为上次的值。

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-12-16
刚好在做C++,顺便帮你做下,望采纳!
#include <stdio.h>
main()
{
int a,i,sum=0;
printf("素数:\n");
for (a=1;a<=1000;a++)
{
for (i=2;i<=(a-1);i++)
if (a%i==0)
break;
if (i>=a)
{
sum++;
printf("%d\n",a);
}
}
printf("\n素数的个数:%d\n",sum);
}本回答被提问者和网友采纳
第2个回答  2011-04-07
#include <stdio.h>
int main()
{
int i,n=0,j,m=0;
for(i=2;i<=1000;i++)
{
for(j=2;j<i;j++)
if(i%j==0) break;
if(i==j)
{
printf("%3d ",i);
n++;
m++;
}
if(n==8)
{
printf("\n");
n=0;
}

}
printf("共有%d个素数\n",m);
getchar();
return 0;
}
相似回答