Форум сайта python.su
agalenв общем да убрал, ой нет 9 не проходит, вернул в зад
Диапазон можно уменьшить: вместодостаточноxrange(3, int(x**0.5) + 1, 2)xrange(3, int(math.sqrt(x)), 2)
Отредактировано (Янв. 20, 2012 04:07:51)
Офлайн
Всем здравствуйте!
Решая задачку о проверке числа на простое оно или нет, получилось следующее:
def isPrime(n): n = int(n) if n == 2: return True if n % 2 == 0: return 2 i = 3 while i * i < n and n % i != 0: i += 2 if i * i > n: return True else: return i print( """ Программа проверяет - является ли число, введенное пользователем простым числом. Простое число - это число, которое делится только на 1 и самого себя. Давайте проверим ваше число. Если хотете выйти, нажмите Enter. """ ) print("\nПроверим является ли число простым...") number = input("\nВведите число целое положительное число > 1: ") while int(number) <= 1: input("\nВведенное не больше 1. Повторите ввод: ") if isPrime(number) == 2: print("\nЧисло не является простым, наименьший делитель:", isPrime(number)) if isPrime(number) == True: print("\nЧисло", number, "-является простым.") if isPrime(number) != True: print("\nЧисло не является простым, наименьший делитель:", isPrime(number)) input("\n\nНажмите Enter чтобы выйти...")
Офлайн
Пример
>>> "123".isdigit() True >>> "123q".isdigit() False
Офлайн
JOHN_16Спасибо, но чисто теоретически все это можно и своими силами… Конечно код вырастет в объеме… но я то спросил не ради того чтобы новую ф-цию узнать (для этого есть python.org). Я понимаю что незачем разводить танцы с бубном, если all inclusive. Но понять - как вода, можно только самому зайдя в воду.
Пример
>>> “123”.isdigit()
True
>>> “123q”.isdigit()
False
Отредактировано kamaz70rus (Апрель 4, 2018 19:47:20)
Офлайн
kamaz70rus
Вот только вопрос, как сделать проверку на то, что в input-е действительно числа, а не др. символы?
kamaz70rusВесь этот фрагмент кода алгоритмически неправильный. Должен быть только один input() и цикл его должен повторять, пока не будет введена подходящая строка. Так что подумай, составь заново этот участок алгоритма и перепиши код для него. Проверка на число при вводе может быть сложнее, чем просто проверка на одни цифры. Ввод числа можно вообще сделать отдельной функцией, которая на выходе выдаёт число, подходящее для определение его простоты.print("\nПроверим является ли число простым...") number = input("\nВведите число целое положительное число > 1: ") while int(number) <= 1: input("\nВведенное не больше 1. Повторите ввод: ")
Отредактировано py.user.next (Апрель 5, 2018 01:29:14)
Офлайн