C语言编一个程序,求100以内的全部素数

很急谢谢了

#include<stdio.h>
int prime(int n)//求素数过程,是返回1,不是返回0
{
for(int i=2;i<int(n);i++)
if (n%i==0)return 0;
return 1;
}
void main()
{
int i=0;
for(int j=2;j<100;j++)
if(prime(j)==1){printf("%d\t",j) ;i++;}
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2008-04-11
#include<stdio.h>
#include<time.h>
#define N 10000000 //你要求的范围的最大值
int a[N];
void prime(long n) //用筛法将不是素数的值置0
{
long i,j;
a[1]=0;
for(i=2;i<n;i++)
a[i]=1;
for(i=2;i<n/2;i++)
if(a[i])
for(j=i*2;j<n;j=j+i)
a[j]=0;
}
int main()
{
int n,i;

while(scanf("%d",&n))
{
prime(n);

for(i=2;i<=n;i++)
if(a[i])
printf("%d\t",i);

}
return 0;
}

可以输出10000000以内的所有素数,计算过程不到1秒,但输出的时候就比较多了
第2个回答  2008-04-11
一百以内的素数除能被1和它本身整除外不能被任何数整除的数就是素数:
void main()
{
int i,j,k;
for(i=1;i<=100;i++)
{
for(j=2;j<i;j++)
if(i%j!=0)
printf("%d",i);
}
}
第3个回答  2008-04-11
int i,j,flag,count;
int prime[100];
count=0;
for( i = 1 ; i < 101 ;i ++ ){
flag = 0;
for( j = 2 ; j < (i+1)/2 ; j++ ){
if ( i % j == 0 ){
flag = 1;
break;
}
}
if ( flag == 0 || i == 2 ){
prime[count] = i;
count++;
}
}
相似回答