问题 A: 素数
时间限制: 1 Sec 内存限制: 32 MB题目描述
输入一个整数n(2<=n<=10000),要求输出所有从1到这个整数之间(不包括1和这个整数)个位为1的素数,如果没有则输出-1。
输入
输入有多组数据。
每组一行,输入n。
输出
输出所有从1到这个整数之间(不包括1和这个整数)个位为1的素数(素数之间用空格隔开,最后一个素数后面没有空格),如果没有则输出-1。
样例输入
70
样例输出
11 31 41 61
#include<cstdio>
#include<string.h>
using namespace std;
bool prime[10005];
void getPrime()
{
for(int i=2;i<=100;i++)
{
for(int j=i*i;j<=10000;j+=i)
prime[j]=true;
}
}
int main()
{
int n;
getPrime();
while(scanf("%d",&n)!=EOF)
{
int flag=1;
for(int i=11;i<n;i++)
{
if(!prime[i]&&i%10==1)
{
if(flag)
{
printf("%d",i);
flag=0;
}
else
printf(" %d",i);
}
}
if(flag)
printf("-1");
putchar('\n');
}
return 0;
}