求用C语言写的1-100素数的程序

如题所述

#include<stdio.h>
#include<math.h>
int shu(long unsigned num) //判断一个数是否素数
{
int t,i;
t=sqrt(num)+1;
for(i=2;i<t;i++)
{
if(num%i==0)
break;
}
return i==t;
}
int main()
{
int i,k=0,n=100; //求3至100间的素数
for(i=3;i<n;i++)
if(shu(i))
{
k++;
printf("%.3d ",i); //是的话,计数器加1,并按三位数形式打印输出
if(k%5==0)printf("\n"); //5个数一行
}
printf("\nsum:%d\n",k);
}

附输出结果:
003 005 007 011 013
017 019 023 029 031
037 041 043 047 053
059 061 067 071 073
079 083 089 097
sum:24
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-01-01
这里有一个判断素数的程序,你可以参考参考。

#include<stdio.h>
void main()
{
int number;
int prime(int number);
printf("请输入一个正整数:\n");
scanf("%d",&number);
if (prime(number))
printf("\n %d是素数. ",number);
else
printf("\n %d不是素数. ",number);
}

int prime(int num) /*此函数用于判别素数*/
{ int flag=1,n;
for(n=2;n<num/2 &&flag == 1;n++)
if (num%n==0)
flag=0;
return(flag);
}
第2个回答  2011-01-01
#include<stdio.h>
#include<math.h>
void main()
{
int n;
int pri(int x);
for(n=1;n<=100;n++)
{
if(pri(n)==0)
printf("%d是素数。\n",n);
// else printf("%d不是素数。\n",n);
}
}
int pri(int x)//判断一个数是否为素数的函数
{
int i,r,w;
w=0;
i=2;
while(i<=sqrt(x)&&w==0)
{
r=x%i;
if(r==0)w=1;
else i++;
}
return (w);
}
我刚刚试过,可以运行了。
第3个回答  2011-01-01
#include<stdio.h>
void main ()
{
int i=100,c,a;
while(i<=200)
{
c=2;
while(c<=i)
{
a=i%c;
if(a==0)
{
printf("%d\n",i);
c=i+1;//这里赋值后会有点问题。
}
else c=c+1;
}
i=i+1;
}
}
以下是我编的!可以看下:
#include<stdio.h>
#include<math.h>
void main()
{ int m,i,k,n=0;
for(m=101;m<=200;m++)
{k=sqrt(m);
for(i=2;i<=k;i++)
if(m%i==0)
break;
if(i>=k+1)
{printf("%4d",m);
n++;
}
if(n%10==0)
printf("\n");
}
printf("\n");
}
相似回答