首页 > 试题广场 >

素数

[编程题]素数
  • 热度指数:22732 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 64M,其他语言128M
  • 算法知识视频讲解
输入一个整数n(2<=n<=10000),要求输出所有从1到这个整数之间(不包括1和这个整数)个位为1的素数,如果没有则输出-1。

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


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

输入

100

输出

11 31 41 61 71
while True:
    try:
        n=int(input().strip())
        def sushu(i):
            result=True
            num=int(i**0.5)+1
            for j in range(2,num+1):
                if i%j==0:
                    result=False
                    break
            return result
        list1=[]
        for i in range(2,n):
            if sushu(i):
                if str(i)[-1]=='1':
                    list1.append(str(i))
        if len(list1)==0:
            print(-1)
        else:
            print(' '.join(list1))
    except:
        break
发表于 2019-08-13 20:38:21 回复(0)

python solution:

def isSu(num):
    for i in range(2,num):
        if num%i==0:
            return False
    return True
while True:
    try:
        a=int(input())
        res=[]
        for i in range(11,a,10):
            if isSu(i):
                res.append(str(i))
        print(" ".join(res))

    except:
        break
发表于 2017-10-01 14:48:48 回复(1)
def isPrime(n):
    return not [i for i in xrange(2, int(n ** 0.5) + 1) if n % i == 0]
     
table = [x for x in xrange(2, 10000) if isPrime(x) and str(x)[-1] == '1']
         
try:
    while 1:
        n = input()
        if n <= 11:
            print -1
        else:
            result = []
            for i in table:
                if i >= n:
                    break
                else:
                    result.append(str(i))
            print ' '.join(result)
except:
    pass

发表于 2016-12-26 18:20:21 回复(0)

问题信息

难度:
3条回答 10876浏览

热门推荐

通过挑战的用户

查看代码
素数