题目:求N以内的素数
解析:1.直接用两个数相除,余数是否为0来解决。
2.用筛选法一个一个来解决。
代码如下
1.方法一:直接法
#include<stdio.h>
int main(){
int n;
scanf("%d",&n);
for(int i=2;i<=n;i++){
int k=0;
for(int j=2;j<i;j++){
if(i%j==0)
k=1;
}
if(k==0)
printf("%d\n",i);
}
return 0;
}
2.方法二:筛选
#include<stdio.h>
int main(){
int n,a[10000];
for(int i=0;i<=10000;i++){
a[i]=0;
}
scanf("%d",&n);
for(int i=2;i<=n;i++){
if(a[i]==0){
for(int j=i*2;j<=n;j=j+i){
a[j]=1;
}
}
}
for(int i=2;i<=n;i++){
if(a[i]==0){
printf("%d\n",i);
}
}
}
运行结果: AC