Найти - Пользователи
Полная версия: Определение простое число или нет
Начало » Центр помощи » Определение простое число или нет
1 2 3
baa
agalen
Диапазон можно уменьшить: вместо
xrange(3, int(x**0.5) + 1, 2)
достаточно
xrange(3, int(math.sqrt(x)), 2)
в общем да убрал, ой нет 9 не проходит, вернул в зад
kamaz70rus
Всем здравствуйте!
Решая задачку о проверке числа на простое оно или нет, получилось следующее:
 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 чтобы выйти...")
Так как я в начале пути сего занимательного процесса, то пока меня и это устраивает. Вот только вопрос, как сделать проверку на то, что в input-е действительно числа, а не др. символы? Т.к. при вводе не чисел ф-ция int конечно же выдает ошибку. А до ошибок и исключений мне пока еще далековато.
Заранее благодарю за потраченное на меня время.
JOHN_16
Пример
 >>> "123".isdigit()
True
>>> "123q".isdigit()
False
kamaz70rus
JOHN_16
Пример
>>> “123”.isdigit()
True
>>> “123q”.isdigit()
False
Спасибо, но чисто теоретически все это можно и своими силами… Конечно код вырастет в объеме… но я то спросил не ради того чтобы новую ф-цию узнать (для этого есть python.org). Я понимаю что незачем разводить танцы с бубном, если all inclusive. Но понять - как вода, можно только самому зайдя в воду.
py.user.next
kamaz70rus
Вот только вопрос, как сделать проверку на то, что в input-е действительно числа, а не др. символы?
kamaz70rus
  
print("\nПроверим является ли число простым...")
number = input("\nВведите число целое положительное число > 1: ")
while int(number) <= 1:
    input("\nВведенное не больше 1. Повторите ввод: ")
Весь этот фрагмент кода алгоритмически неправильный. Должен быть только один input() и цикл его должен повторять, пока не будет введена подходящая строка. Так что подумай, составь заново этот участок алгоритма и перепиши код для него. Проверка на число при вводе может быть сложнее, чем просто проверка на одни цифры. Ввод числа можно вообще сделать отдельной функцией, которая на выходе выдаёт число, подходящее для определение его простоты.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB