题解 | 筛选法求素数
筛选法求素数
https://www.nowcoder.com/practice/06c3dcc303654ef4926654023eca1e5a
#include <stdio.h>
#include<math.h>
int main() {
//输入
int n ;
int count = 0;
int arr[100] = {0};
while((scanf("%d",&n)) == 1)
{
for(int i = 2; i <= n; i++)
{
arr[i] = i;
}
for(int i = 2; i <= n; i++)
{
int j = 0;
for(j = 2; j <= (int)sqrt(i);j++)
{
if(i%j == 0)
{
arr[i] = 0;
}
}
}
for(int i = 2; i <= n; i++)
{
if(arr[i] != 0)
{
printf("%d ",arr[i]);
}
else {
count++;
}
}
printf("\n%d",count);
}
return 0;
}
查看10道真题和解析
