c语言,用筛选法求100之内的素数?请好好解释下怎么求解。急。明天要交。

来源:百度知道 编辑:UC知道 时间:2024/06/08 14:56:56

void calc_prime()
{
for (int i = 2;i<=MaxPrime;i++) isprime[i] = 1;
int i = 2;
while (i < MaxPrime)
{
while (i <= MaxPrime && !isprime[i]) i++;
if (!isprime[i]) break;
prime[++pprime] = i;
isprime[i] = pprime;
int j = i + i;
while (j <= MaxPrime)
{
isprime[j] = 0;
j += i;
}
i++;
}
//for (int i = 0;i<=100;i++) cout << prime[i] << " ";
//cout << endl;
}

就是在一定范围内每次筛去质数的倍数,最后剩下来的就是质数,具体可以参考我的程序,有不懂的可以问我

#include<math.h>
#define N 101
main(){
int i,j,line,a[N];

for(i=1;i<N;i++) a[i]=i; /*初始化数组*/

for(i=2;i<sqrt(N);i++){
for(j=i+1;j<N;j++){
if(a[i]!=0&&a[j]!=0)
if(a[j]%a[i]==0)
a[j]