游客 Signup | Login
中文 | En

1517 - 素数

输入一个整数n(2<=n<=10000),要求输出所有从1到这个整数之间(不包括1和这个整数)个位为1的素数,如果没有则输出-1。

Input

输入有多组数据。

每组一行,输入n。

Output

输出所有从1到这个整数之间(不包括1和这个整数)个位为1的素数(素数之间用空格隔开,最后一个素数后面没有空格),如果没有则输出-1。

Examples

Input

70

Output

11 31 41 61

Solution C

#include<stdio.h> 
int main()
{
    int i,j,a[3000],n,m,flag;
    m=0;
	for(i=2;i<=12000;i++)
	{
		a[0]=2;
		flag=1;        
		for(j=0;j<=m;j++)
		{
			if(i%a[j]==0)
				flag=0;
		}
		if(flag)
		{
			m++;
			a[m]=i;
		}
	}
    while(scanf("%d",&n)!=EOF)
    {
		if(n<=11)
			printf("-1\n");
		if(n>11)
		{
			printf("11");
			for(i=5;a[i]<n;i++)
				if(a[i]%10==1)printf(" %d",a[i]);
			printf("\n");
		}
    }
    return 0;
}

Solution C++

#include<stdio.h>
#include<math.h>

int main()
{
	int n,i,j,flag;
	while(scanf("%d",&n)!=EOF)
	{
		for(flag=0,i=2;i<n;i++)
		{
			for(j=2;j<=sqrt(i);j++)
				if(i%j==0)
					break;
			if(j>sqrt(i)&&i%10==1)
			{
				printf(flag?" %d":"%d",i);
				flag=1;
			}
		}
		if(!flag)
			printf("-1");
		puts("");
	} 
	return 0;
}
Time Limit 1 second
Memory Limit 32 MB
Discuss Stats
上一题 下一题