判定一个素数:
#include <stdio.h>
#include <math.h>
#include <stdbool.h>
#define N 100000
bool prime[N];
int main()
{
int n;
scanf("%d",&n);
if(n==2){
prime[n]=true;
}
for(int i=3;i<=n;i++){
if(i%2==0){
prime[i]=false;
}else{
prime[i]=true;
}
}
for(int i=3;i<=sqrt(n);i++){
if(prime[i]){
for(int j=i+i;j<N;j+=i){
prime[j]=false;
}
}
}
if(prime[n]){
printf("Yes\n");
}else{
printf("No\n");
}
return 0;
}
判定多个素数:
#include <stdio.h>
#include <math.h>
#include <stdbool.h>
#define N 100000
bool prime[N];
int main()
{
int n;
scanf("%d",&n);
if(n==2||n==1){
prime[n]=true;
}
for(int i=3;i<=n;i++){
if(i%2==0){
prime[i]=false;
}else{
prime[i]=true;
}
}
for(int i=3;i<=sqrt(n);i++){
if(prime[i]){
for(int j=i+i;j<N;j+=i){
prime[j]=false;
}
}
}
for(int i=1;i<=n;i++){
if(prime[i]){
printf("%d\n",i);
}
}
return 0;
}
这其中观看了大神的代码写的