Мы видим, что из случайно выбранных чисел выделяются 773, 401, 193, 523. Эти числа действительно являются простыми числами.
Листинг программы, написанный в процессе изучения генерации псевдо простых чисел.
import random def pherma(p_int, b_arr): pherma_yes = 0 for i in b_arr: if i**(p_int-1)%p_int == 1: pherma_yes += 1 return pherma_yes/len(b_arr) def solovey(p_int, b_arr): solovey_yes = 0 for i in b_arr: deg = int((p_int - 1) / 2) if i ** deg % p_int == 1 or i ** deg % p_int == p_int - 1: solovey_yes += 1 return solovey_yes/len(b_arr) if __name__ == "__main__": n_of_tests = 200 b = [random.randint(10,1000) for _ in range(n_of_tests)] print("Число\tТест Ферма\tТест Соловея-Штрассена") for i in range(20): p = random.randint(100, 1000) print("{}\t{}\t{}".format(p, pherma(p, b), solovey(p,b)))
Санкт-Петербург
2019