c++任务描述
本关任务:素数筛法求素数。
编程要求
用素数筛法求出2~N以内的所有素数并输出。每5个数字输出一行,每个数字之间用空格分隔开。
测试说明
我会对你编写的代码进行测试:
样例输入:
100
样例输出:
请输入N的值:
2 3 5 7 11
13 17 19 23 29
31 37 41 43 47
53 59 61 67 71
73 79 83 89 97
开始你的任务吧,祝你成功!
#include<stdio.h>
int fac(int x )
{
int i,t=0,y;
for(i=1;i<=x;i++){
if(x%i==0){
t++;
}else{
continue;
} }
if(t==2){
y=x;
}else{
y=0;
}
return y;
}
int main()
{int fac(int x );
int i,j,n,k;
scanf("%d",&n);
int a[999];
for(i=2,j=0;i<=n;i++){
if(fac(i)!=i) continue;
a[j]=i; j++;
}
for(i=0,k=1;i<=j;i++,k++){
printf("%ld",a[i]);
if(k%5==0){
printf("\n");
}else{
printf(" ");
}
}
return 0;
}
为什么我的代码运行后总是多出一个奇怪的数据