问题 A: 素数
时间限制: 1 Sec 内存限制: 32 MB
提交: 941 解决: 326
题目描述
输入一个整数n(2<=n<=10000),要求输出所有从1到这个整数之间(不包括1和这个整数)个位为1的素数,如果没有则输出-1。
输入
输入有多组数据。
每组一行,输入n。
输出
输出所有从1到这个整数之间(不包括1和这个整数)个位为1的素数(素数之间用空格隔开,最后一个素数后面没有空格),如果没有则输出-1。
样例输入
70
样例输出
11 31 41 61
思路
简单题,注意没有要输出-1
#include<iostream>
#include<cstring>
#include<algorithm>
#include<cmath>
using namespace std;
bool isPrime(int n){
if(n<=1) return false;
int sqr=(int)sqrt(1.0*n);
for(int i=2;i<=sqr;i++){
if(n%i==0)
return false;
}
return true;
}
int main(){
int n;
while(scanf("%d",&n)!=EOF){
int flag=1;
for(int i=2;i<n;i++){
if(isPrime(i)==true&&i%10==1) {
if(flag) {
printf("%d",i);
flag=0;
}
else printf(" %d",i);
}
}
if(flag==1) printf("-1");
printf("\n");
}
return 0;
}
//输出所有从1到这个整数之间(不包括1和这个整数) 注意没有则输出-1