用筛选法求100内的素数,每行输出10个。

来源:百度知道 编辑:UC知道 时间:2024/06/03 16:25:17
我是c语言初学者,希望不要用到我还没学到的东西来解,最好用到数组与字符串的内容来解!!

:判断1-100之间有多少个素数,并输出所有素数。
1.程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,
则表明此数不是素数,反之是素数。
2.程序源代码:
#include "math.h"
main()
{
int m,i,k,h=0,leap=1;
printf("\n");
for(m=1;m<=100;m++)
{ k=sqrt(m+1);
for(i=2;i<=k;i++)
if(m%i==0)
{leap=0;break;}
if(leap) {printf("%-4d",m);h++;
if(h%10==0) //输出十个数后换行
printf("\n");
}
leap=1;
}
printf("\nThe total is %d",h);
}

#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;
}