void sieve_prime(int n)
{
int *a = (int *)malloc((n+1) * sizeof(int));
int i, j;
for ( i = 0; i <= n; i++)
a[i] = 0;
int cnt = sqrt(n);
for (i = 2; i <= cnt ; i++)
{
if (a[i])
continue;
for (j = i*i; j <= n; j += i)
a[j] = 1;
}
for (i = 2; i <= n; i++)
if (a[i] == 0)
printf("%d\n", i);
}
筛法求素数
最新推荐文章于 2024-11-16 19:46:18 发布