关于数学的胡言乱语 2018-02-07
样例输入: 13 样例输出: yes
#include<stdio.h>
#include<math.h>
using namespace std;
bool judge(int x){
if(x<=) return false;
int bound=(int)sqrt(x)+;
for(int i=;i<bound;i++){
if(x%i==)
return false;
}
return true;
}
int main(){
int x;
while(scanf("%d",&x)!=EOF){
puts(judge(x)?"yes":"no");
}
return ;
}样例输入: 100 样例输出: 11 31 41 61 71
#include<stdio.h>
int prime[10000];
bool mark[10001];
int primeSize;
void init(){
for(int i=2;i<=10000;i++)
mark[i]=false;
primeSize=0;
for(int i=2;i<=10000;i++){
if(mark[i]==true) continue;
prime[primeSize++]=i;
for(int j=i*i;j<=10000;j+=i){//因为i*k(k<i)必被k标记过
mark[j]=true;
}
}
}
int main(){
init();
int n;
while(scanf("%d",&n)!=EOF){
bool isOutput=false;//表示是否有过输出,第一个输出的数字以外均需在输出前附加一个空格
for(int i=0;i<primeSize;i++){
if(prime[i]<n&&prime[i]%10==1){
if(!isOutput){
isOutput=true;
printf("%d",prime[i]);
}
else
printf(" %d",prime[i]);
}
}
if(!isOutput) printf("-1\n");
else printf("\n");
}
return 0;
}