Python 2.7 在python中查找任意范围之间的素数以及如何找出不重复的数

Python 2.7 在python中查找任意范围之间的素数以及如何找出不重复的数,python-2.7,Python 2.7,我不知道如何在我的列表中找出不重复的数字(素数),下面是我的代码: lower = int(input("Enter Lower: ")) upper = int(input("Enter Upper: ")) for num in range(lower,upper + 1): # prime numbers are greater than 1 if num > 1: for i in range(2,num): if (num % i

我不知道如何在我的列表中找出不重复的数字(素数),下面是我的代码:

lower = int(input("Enter Lower: "))
upper = int(input("Enter Upper: "))

for num in range(lower,upper + 1):
   # prime numbers are greater than 1
   if num > 1:
       for i in range(2,num):
           if (num % i) == 0:
               break
       else:
           print(num)
例如,我发现质数在100到130之间,这是 101 103 107 109 113 127

好的,但我怎么能只打印“103107109127”? 101113是重复的数字。 set(num)函数不起作用。
非常感谢。

您可以将打印例行程序更改为以下内容

# Convert to a string
str_num = str(num)
# Check whether the length of the string is equal to the number
# of unique digits using a set
repeating = len(set(str_num)) != len(str_num)
# Print if there are no repeating digits
if not repeating:
    print num

使用此筛选功能只筛选一次不包含任何数字的数字:

def filter(num):
    num_str = str(num)
    return len(set(num_str)) == len(num_str)
像这样:

if filter(...):
    print(...)

您可以通过每次将数字减少一位来实现,任何10位或更大的数字都将包含重复:

def is_unique(n):
    if n > 9999999999:
        return False
    st = set()
    while n:
        n, rem = divmod(n, 10)
        if rem in st:
            return False
        st.add(rem)
    return True
只需在打印前检查:

lower = int(input("Enter Lower: "))
upper = int(input("Enter Upper: "))


for num in range(lower, upper + 1):
    # prime numbers are greater than 1
    if num > 1:
        for i in range(2, num):
            if (num % i) == 0:
                break
        else:
            if is_unique(num):
                print(num)

请详细说明哪些数字你不想打印出来,为什么101和113会重复?哦,对不起。数字在重复。我想选择不同的数字。没有重复的数字。有多少个数字必须重复才能被认为是重复的?如果素数是相同的数字,我不想选择它们。10到70素数之间:11--相同的数字13--不同的数字OK 17 OK 19 OK 23 OK 29 OK 31 OK 37 OK 41 OK 43 OK 47 OK 53 OK 59 OK 61 OK 67 OK我的意思是我不想在我的列表“11”中,因为相同的数字。非常感谢你们,我会在我的代码末尾添加你们的代码吗?但它不起作用。我会试试的,我知道了,谢谢。我没有收到错误消息,但我看到了相同的素数。(相同数字)