PTA-条件与循环-求所有由1、2、3、4这4个数字组成的素数

求所有由1、2、3、4这4个数字组成的素数

题目:
编写程序prime.py,输出所有由1、2、3、4这4个数字组成的素数,并且在每个素数中每个数字只使用一次。
输入输出
输入格式:
包含4个一位数的元组
输出格式:
按从小到大顺序输出在一行上,每个素数之间用一个空格隔开
输入样例:
(1,2,3,4)
输出样例(部分):
2 3 13 23 31 41 43 241 421

此题目要求作答者熟练掌握循环的使用。

import math
#   (1,2,3,4)
x=eval(input())
x_list=[]

def isPrime(n):
    m = math.ceil(math.sqrt(n)+1)
    for i in range(2, m):
        if n % i == 0 and i < n:
            return False
            break
    if n==1:
        return False
    else:
        return True

for a in x:
    if isPrime(a):
        x_list.append(a)
    for b in x:
        if a==b:
            continue
        if isPrime(a+b*10):
            x_list.append(a+b*10)
        for c in x:
            if a==c or b==c:
                continue
            if isPrime(c*100+b*10+a):
                x_list.append(c*100+b*10+a)
            for d in x:
                if a==d or b==d or c==d:
                    continue
                if isPrime(d*1000+c*100+b*10+a):
                    x_list.append(d*1000+c*100+b*10+a)

x_sorted=sorted(x_list)
for u in range(len(x_sorted)):
    print(x_sorted[u],end=' ')
    if u==len(x_sorted)-1:
        print(x_sorted[u],end='')

输出结果:

(1,2,3,4)
2 3 13 23 31 41 43 241 421 431 1423 2143 2341 4231 4231

若有疑惑之处可以问哦!

猜你喜欢

转载自blog.csdn.net/Ke_zs/article/details/105248915