编写程序,输出所有有1、2、3、4这四个数字组成的素数,并且在每个素数中每个数字只使用一次。

编写程序,输出所有有1、2、3、4这四个数字组成的素数,并且在每个素数中每个数字只使用一次(仅使用列表)。

#逻辑直白版:
alist = []
for i in range(2,4322):
    for j in range(2,i):
        if i%j==0:
            break
    else:
        alist.append(i)
blist = []
for item in alist:
    if len(str(item))==len(set(str(item))):
        blist.append(item)
clist = []
for item in blist:
    for i in str(item):
        if i not in '1234':
            break
    else:
        clist.append(item)
print(clist)  
#逻辑合并版
alist = []
for item in range(2,4322):
    for j in range(2,item):
        if item%j==0:
            break
    else:
        if len(str(item))==len(set(str(item))):
            for i in str(item):
                if i not in '1234':
                    break
            else:
                alist.append(item)
print(alist)  

tips:还可再优化,仅供参考

你可能感兴趣的:(Python,python)