2017-05-04 44 views
0

我目前正在开发一个项目,用户需要输入一个数字,程序将确定数字是否为素数。这里的问题在于print语句一旦执行就重复执行,唯一的办法就是在程序运行时终止程序。无限重复的打印语句

下面是程序代码:

print("Here, you will be asked to enter a number and the program will 
     determine whether said number is prime. ") 

print ("For the sake of simplicity, we'll only be using numbers that are 
     below 100. ") 

Number = int (input("Please enter a number and we will determine if the 
number you entered if prime. ")) 

for Number in range (1,98): 
    for y in range (1,98): 
     if Number %y!=0: 
      print ("This number is, in fact, a prime number. ") 
     else: 
      if Number %y==0: 
       print ("This number is not prime.") 
+0

请更新您的问题与有效的格式,并提及您正在使用的语言。 – Malik

回答

1

对于数是素数,它应该是整除只能由自身和1 所以,你需要检查是对2之间的数字[, n),如果它可以被任何数字整除,那么它不是素数,你需要打破for循环。

如果for循环在到达结尾时被破坏,那么意味着[2,n)之间的数字不是该数字的一个因子,因此该数字为素数。我们检查循环是否自然中断或使用isPrime布尔标志

PS。该程序可能无法编译,因为我没有运行它,但逻辑正确

print ("Here, you will be asked to enter a number and the program will determine whether said number is prime. ") 
print ("For the sake of simplicity, we'll only be using numbers that are below 100. ") 
isPrime = True 
Number = int (input("Please enter a number and we will determine if the number you entered if prime. ")) 

for y in range (2,Number): 
    if Number%y==0 and Number!=y: 
     isPrime = False 
     print ("This number is not prime.") 
     break 
if isPrime: 
     print "Number is prime"