题目:
编写程序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
若有疑惑之处可以问哦!