cjweffort

博客园 首页 联系 订阅 管理

http://ac.jobdu.com/problem.php?cid=1040&pid=50

题目描述:

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

输入:

输入有多组数据。
每组一行,输入n。

输出:

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

样例输入:
100
样例输出:
11 31 41 61 71
// 题目51:素数.cpp: 主项目文件。

#include "stdafx.h"
#include <cstdio>
#include <math.h>

bool isPrime(int n)
{
	if(n<=1)
		return false;
	int tt=(int)sqrt(1.0*n);
	for(int i=2;i<=tt;i++)
		if(n%i==0)
			return false;
	return true;
}

int main()
{
    int n;
	while(scanf("%d",&n)!=EOF)
	{
		bool flag=true;
		for(int i=2;i<n;i++)
		{
			if(isPrime(i)&&i%10==1)
			{
				if(flag)
				{
					flag=false;
					printf("%d",i);
				}
				else
					printf(" %d",i);
			}	
		}
		if(flag)
			printf("-1\n");
		else
			printf("\n");
	}
    return 0;
}


posted on 2013-03-06 11:30  cjweffort  阅读(182)  评论(0编辑  收藏  举报