2015-07-20 6 views
-3

Моя цель - создать программу, которая говорит, что это число простое или нет. Положительное целое число n> 2 является простым, если число между 2 и sqrt (n) делит n.Основной номер (Python 3)

Вот мой код:

import math 

def main(): 
    print("Prime number or not") 
    try: 
      N = -1 
      while N<2: 
       print("Error!Enter numbers greater than two") 
       N = int(input("Enter the right number:")) 
       values = list(range(2,round(math.sqrt(N)))) 
       for i in values: 
        if i%N !=0: 
         continue 
        x = print("The number is not prime") 
       elif i%N ==0: 
        break 
       x = print("The number is NOT prime") 
      print(x) 

    except ValueError: 
     print("Error!Print correct number") 
    except NameError: 
     print("Error!Print the numbers") 

main() 

Но показывает синтаксическую ошибку в строке

elif i%N ==0: 

Пожалуйста, дайте мне несколько советов, как исправить эту ошибку и о коде в целом. Я новичок в изучении Python, поэтому любая помощь и критик будут хороши! Спасибо.

+3

Отпечаток в смятении. Не могли бы вы переустановить свой код, желательно с четырьмя пробелами? – NightShadeQueen

+3

У вас серьезные проблемы с отступом – CoryKramer

+1

'elif' не подключен к блоку' if' над ним. Вы не можете вводить другие выражения между этими блоками. – TigerhawkT3

ответ

-1

Предполагая, что отступы на вопросе верны СЕЙЧАС, проблема в том, что ваш блок elif не имеет родителя if. Это также неправильно отложено, что даже если вы исправите первую ошибку, вы получите IndentationError, но это почти не относится к делу.

for i in values: 
    if i%N !=0: 
     continue 
    x = print("The number is not prime") # huh? you've left the `if` block 
    elif i%N ==0: # under-indented 
     break