#include <stdio.h>
#include <math.h>
#define N 100
void SiftPrime(int a[], int n);
void PrintPrime(int a[], int n);
int main()
{
int a[N + 1];
SiftPrime(a, N);
PrintPrime(a, N);
return 0;
}
void SiftPrime(int a[], int n)
{
int i, j;
for ( i = 2; 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 && a[j] % a[i] == 0)
{
a[j] = 0;
}
}
}
}
void PrintPrime(int a[], int n)
{
int i;
for ( i = 2; i <=n; i++)
{
if (a[i] != 0)
{
printf("%4d\t", a[i]);
}
}
printf("\n");
}
利用数组---筛法或者挖空法输出100以内的素数---源自Mooc
最新推荐文章于 2023-01-15 17:43:29 发布