2016-01-16 4 views
0
print("Enter the number you want to test") 
Num1 = input("Enter your number here:") 
if (Num1%1 == '0' and Num1%Num1 == '0'): 
    print ("This number is prime number") 
else: 
    print("This number is nor prime number") 

Ошибка при TypeError: not all arguments converted during string formatting. В чем причина и как я могу это исправить?Почему это сравнение не удается?

+4

В то время как другие отвечают на то, что означает ошибка и как это исправить, я укажу, что ваш алгоритм для определения того, является ли число простым, является ошибочным; оператор if всегда возвращает true для любого целого числа. – Reti43

+0

Что такое 'Num1% 1'? Все целые числа равны 0 по модулю 1. – Barmar

ответ

1

input возвращает string, вы должны преобразовать его в int:

Num1 = int(input("Enter your name here:")) 

И if части изменено на:

if (Num1%1 == 0 and Num1%Num1 == 0): 

Однако код логика понимать, что число является простым или нет, Неправильно, вы должны проверить, что у number есть фактор или нет, вы должны написать цикл for через его более низкие цифры и понять, что это просто, но я думаю, лучше для вас, которые пишут сами.

Смежные вопросы