Добавил:
Qumorr
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Lab_09
.py import random
import math
def miller (m):
r = int(math.log2(m))
print('Используем ',r,' свидетелей простоты так так целесообразно использовать log2([число])')
s = 0
pr = 0
t = m -1
while (t % 2 == 0):
s += 1
t = t // 2
print('Представляем в виде 2^',s,' * ', t)
for i in range (r):
a = random.randint(2,m-2)
print('Текущий свидетель: ', a)
x = (a**t) % m
if (x == 1) or ( x == m - 1):
print( 'x = ',x, 'Переход к с ледующему свидетелю')
continue
for j in range (s-1):
print('Текущая степень:',s - j)
x = x**2 % m
print('x = ',x)
pr = 0
if (x == 1):
return False
elif (x == m - 1):
pr = 1
break
if (pr == 1):
continue
return False
return True
z = int(input('Введите число: '))
l = miller(z)
if (l == False):
print('Число составное!')
else:
print('Число вероятно простое!')
import math
def miller (m):
r = int(math.log2(m))
print('Используем ',r,' свидетелей простоты так так целесообразно использовать log2([число])')
s = 0
pr = 0
t = m -1
while (t % 2 == 0):
s += 1
t = t // 2
print('Представляем в виде 2^',s,' * ', t)
for i in range (r):
a = random.randint(2,m-2)
print('Текущий свидетель: ', a)
x = (a**t) % m
if (x == 1) or ( x == m - 1):
print( 'x = ',x, 'Переход к с ледующему свидетелю')
continue
for j in range (s-1):
print('Текущая степень:',s - j)
x = x**2 % m
print('x = ',x)
pr = 0
if (x == 1):
return False
elif (x == m - 1):
pr = 1
break
if (pr == 1):
continue
return False
return True
z = int(input('Введите число: '))
l = miller(z)
if (l == False):
print('Число составное!')
else:
print('Число вероятно простое!')
Соседние файлы в предмете Математические основы защиты информации