素数
[Creator : Imported]
Time Limit : 1.000 sec Memory Limit : 32 MB
Description
输入一个整数n(2<=n<=10000),要求输出所有从1到这个整数之间(不包括1和这个整数)个位为1的素数,如果没有则输出-1。
Input
输入有多组数据。
每组一行,输入n。
Output
输出所有从1到这个整数之间(不包括1和这个整数)个位为1的素数(素数之间用空格隔开,最后一个素数后面没有空格),如果没有则输出-1。
Sample Input Copy
70
Sample Output Copy
11 31 41 61
#include <stdio.h>
#include <math.h>
bool isPrime(int a)
{
if(a<=1) return false;
int fin=sqrt(a);
for(int i=2;i<=fin;i++)
{
if(a%i==0) return false;
}
return true;
}
const int max=100001;
int Prime[max];
int x=0;
bool p[max]={false};
int m,n;
void isPrime2()
{
for(int i=2;i<max;i++)
{
if(i==n) break;
if(p[i]==false)
{
if(i%10==1) Prime[x++]=i;
for(int j=i*2;j<max;j+=i)
p[j]=true;
}
}
}
int main()
{
while(scanf("%d",&n)!=EOF)
{
x=0;
isPrime2();
if(x==0) printf("-1\n");
for(int i=0;i<x;i++)
{
if(i==x-1)
printf("%d\n",Prime[i]);
else
printf("%d ",Prime[i]);
}
}
}