2014-09-25 2 views
0

Я пытаюсь выяснить, если число разделить чисто, видя, если они делятся на поплавок или междунар, например:Python 3, контекст на основе деление

10/2 = 5 10/3 = 3,333

Проблема заключается в том, что, как я понимаю, вы можете использовать/и получать ТОЛЬКО результаты поплавка или использовать // и получать ТОЛЬКО результаты int. Я пытаюсь выяснить, является ли некоторое число n простым.

Идея, которую я имел, заключалась в том, чтобы увидеть, все ли числа между 1 и n-1 делятся на поплавки, так как это означает, что ни один из них не делит чисто.

Это упражнение, оценивающее мою способность к вводному курсу, я понимаю, что может быть какая-то библиотека, которую я могу импортировать, но я должен решить эту проблему, используя методы, которые находятся на моем уровне, а импортировать библиотеки - нет.

Так что мне было интересно, есть ли способ использовать деление, которое вернет истинный тип ответа, если такой вопрос даже имеет смысл.

ответ

3

Чтобы увидеть, если число «делит чисто», вы хотите использовать % оператор:

10 % 3 # 1 
11 % 3 # 2 
12 % 3 # 0 

Очевидно, что если a делит b «чисто», то результат имеет b % a является 0.

Модуль оператора

+0

Здесь 1 будет остаток или модуль - См: [операция по модулю] (http://en.wikipedia.org/wiki/Modulo_operation) – jedwards

+0

Ой см , Я могу сделать оператор if для всех чисел в диапазоне и если он возвращает 0 только для n/1 и n/n, то это будет означать его простое! – Samsara

+1

@ Саммара - Да. Существует много [лучших способов поиска простых чисел] (http://en.wikipedia.org/wiki/Sieve_of_Eratosthenes), но даже ваш действительно простой алгоритм может быть улучшен - проверять только на 'sqrt (n)'. Вам не нужно полностью проверять «n-1». (Вероятно, вы можете убедиться в этом, если подумать об этом несколько минут). – mgilson

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