Advertisement
Guest User

isprime comments

a guest
Oct 18th, 2019
122
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.70 KB | None | 0 0
  1. import random           # импорт модуля random, нужен для генерации (псевдо)случайного числа
  2. import time             # импорт модуля time, нужен для замеров времени выполнения
  3.  
  4.  
  5.                                        # функция получает число, и если оно не чётное - делит на диапазон нечётных чисел
  6. def isprime(n):                        # (шаг 2, они пропускаются) от 3 до int(sqrt(n))
  7.     if n%2==0: return(False)           # если деление на любое число из этого диапазона дало 0 в остатке (разделилось нацело)
  8.     for i in range(3,int(n**0.5),2):   # - число простое, функция возвращает False, если делителя не найдено и цикл завершён
  9.         if n%i==0: return(False)       # выполняется возврат True - число простое
  10.     return(True)                                 # <--вот тут оно возвращает True
  11.  
  12.                                                  # получение количества десятичных знаков для генерации случайного числа
  13. a = int(input('введите натуральные число десятичных знаков: '))  
  14.  
  15. tm = time.time()                                 # сохранение времени начала поиска времени поиска
  16.  
  17. while True:
  18.     stm = time.time()                            # cохранение времени начала проверки числа
  19.     num = random.randint(10**(a-1),10**a)        # получение рандомного числа заданной длинны
  20.     if isprime(num):                             # если тест пройден - вывести таймеры (\n - перенос строки, sep='' - разделитель)
  21.         print(time.time()-tm,' секунд на проверку всех случайных чисел \n',time.time()-stm,' секунд на проверку полученного простого числа', sep='')
  22.         print(num,' - случайное простое число')  # вывод полученного простого числа
  23.         break                          # Выход из цикла, если простое число найдено
  24.  
  25.  
  26. input()                                # ожидание ввода, чтобы при запуске в консоли программа не закрылась сразу после выполнения
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement