33,311
社区成员
发帖
与我相关
我的任务
分享
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int is_prime(int n);
int main()
{
int n = 0;
int i = 0;
int x = 0;
int k;
int cnt = 0;
int *a;
scanf("%d", &n);
a = (int *)malloc((n / 2 + 1) * sizeof(int));
if (n < 2)
return 0;
k = 0;
a[k++] = 2;
printf("%d ", 2);
for (i = 3; i <= n; i++) {
if (is_prime(i)) {
a[k++] = i;
printf("%d ", i);
cnt++;
if (cnt % 10 == 0)
printf("\n");
}
}
putchar(10);
free(a);
return 0;
}
int is_prime(int n)
{
int i;
int len = sqrt(n) + 1;
for (i = 2; i < len; i++)
if (n % i == 0)
break;
if (i >= len)
return 1;
return 0;
}
参考一下吧