判断素数 筛法
//判断素数 筛法
/*
求十万以内
任意一个数,是否为质数
*/
#include<iostream>
using namespace std;
int main(){
int x[100001];
int temp,n;
//初始化数组
for(int i=0;i<100001;i++)
x[i]=0;
//初始化数组完成
/*
预计结果,
数组中质数为0,其它为1
*/
x[0]=x[1]=1;//因为 0和1不能通过计算得到,所以只能手工置1 ,1即不是合数也不是质数
for(int i=2;i<100001;i++){//循环数组中的每个数
if(x[i]==0){//如果该数所存的值为0,即第一次接触此数
temp=2*i;//将它的二倍,及n倍(要小于100000) ,都置为1,因为这些数都能被i整除
while(temp<=100000){
x[temp]=1;
temp+=i;
}
}
}
while(scanf("%d",&n)!=EOF){
if(x[n]==0)
printf("Yes\n");
else
printf("No\n");
}
}
/*
求十万以内
任意一个数,是否为质数
*/
#include<iostream>
using namespace std;
int main(){
int x[100001];
int temp,n;
//初始化数组
for(int i=0;i<100001;i++)
x[i]=0;
//初始化数组完成
/*
预计结果,
数组中质数为0,其它为1
*/
x[0]=x[1]=1;//因为 0和1不能通过计算得到,所以只能手工置1 ,1即不是合数也不是质数
for(int i=2;i<100001;i++){//循环数组中的每个数
if(x[i]==0){//如果该数所存的值为0,即第一次接触此数
temp=2*i;//将它的二倍,及n倍(要小于100000) ,都置为1,因为这些数都能被i整除
while(temp<=100000){
x[temp]=1;
temp+=i;
}
}
}
while(scanf("%d",&n)!=EOF){
if(x[n]==0)
printf("Yes\n");
else
printf("No\n");
}
}
逍遥地羊啊。。。。

浙公网安备 33010602011771号