我知道这很基本,但是我陷入了小步骤。菜鸟到python,请原谅我的无知。问题是在2个随机用户输入号码之间生成所有质数(这意味着不包括第一个和第二个数字)。另外,如果两个数字之间没有质数,则应打印"No Primes"
输出。我的代码:
Firstno=int(input("number1: "))
Secondno = int(input("number2: "))
for num in range(Firstno+1,Secondno -1):
if num>1:
for i in range (2,num):
if (num%i) == 0:
break
else:
print(num)
这给出了所需输出的一部分,但未显示"No primes"
。如果我包括print("No primes")
代替中断语句并使用数字23
和29
进行测试,则将"No Primes"
输出重复两次。我还尝试定义功能(我的知识很少)
def is_prime(n):
for i in range(x,n):
if (n%i) == 0:
return "No Primes"
return True
Firstno=int(input("number1: "))
Secondno = int(input("number2: "))
for num in range(Firstno+1,Secondno -1):
if is_prime(num):
print(num)
我知道是不正确的。.由于x未定义。请提供有关改进我的代码以获取所需输出的建议。
您基本上需要从线路for num in range(Firstno+1,Secondno -1):
删除-1
,以了解为什么查看代码包含范围:for num in range(Firstno,Secondno+1):
这是您的第一次尝试编码:
lower_boundry = int(input("Enter the lower boundry number: "))
upper_boundry = int(input("Enter the upper boundry number: "))
print("Prime numbers between", lower_boundry , "and", upper_boundry , "exclusive are:")
primes_found = []
for num in range(lower_boundry + 1, upper_boundry):
if num > 1:
for i in range(2,num):
if (num % i) == 0:
break
else:
primes_found.append(num)
if len(primes_found) > 0:
print(primes_found)
else:
print("No Primes")
示例使用介于:
之间Enter the lower boundry number: 2
Enter the upper boundry number: 6
Prime numbers between 2 and 6 exclusive are:
[3, 5]
示例用法中没有数量:
Enter the lower boundry number: 2
Enter the upper boundry number: 3
Prime numbers between 2 and 3 exclusive are:
No Primes
在此处尝试以上代码!