用C语言求1--100之间的素数?

2025-03-10 06:14:06
推荐回答(4个)
回答1:

#include "stdio.h"
#include "math.h"
#define N 101
main()
{
int i,j,line,a[N];
for(i=2;i for(i=2;i for(j=i+1;j {
if(a[i]!=0&&a[j]!=0)
if(a[j]%a[i]==0)
a[j]=0;
}
printf("\n");
for(i=2,line=0;i {
if(a[i]!=0)
{
printf("%5d",a[i]);
line++;
}
if(line==10)
{
printf("\n");
line=0;
}
}
getch();
}

回答2:

什么叫我写的麻烦,我这个是按照素数真正的定义写的,素数是不能被比他小的任何素数整除的数

#include
#include
#define N 100000
int a[50000]={2};
int m;
void init() //储存比N小的数素
{
int i,j,k=1,sure=1;
for(j=3;j{
for(i=2;i<=sqrt(j);i++)
if(j%i==0)
{
sure=0;
break;
}
if(sure)
a[k++]=j;
sure=1;
}
m=k-1;
}

int prime(long n) //判断该数是否为素数
{
int i;
if(n<2)
return 0;
if(n==2)
return 1;
for(i=0;i{
if(a[i]>sqrt(n))
break;
if(n%a[i]==0)
return 0;
}
return 1;
}

int main()
{
int i;
init();
for(i=2;i<100;i++)
if(prime(i))
printf("%4d",i);
return 0;
}

回答3:

#include "stdio.h"
main()
{
int m,n,i,j,k=0,leap=1;
for(m=3;m<=100;m+=2)
{
for(n=2;n j=m%n;
if(j==0)
{leap=0;break;}
if(leap)
{printf("%4d",m);k++;
if(k%10==0)
printf("\n");}
leap=1;
}
}

你们太麻烦了吧,还是我们这些菜鸟写的容易些!
嘿嘿,你们的我们看不懂!

回答4:

#include "stdio.h"
#include "math.h"
main()
{
int n,i;
for(n=2;n<=100;n++)
{for(i=2;i<=sqrt(n);i++)
if(n%i==0)break;
if(i>sqrt(n))printf("%d ",n);}
getch();
}