所以我试着让我的程序循环这个pke方程,只把e
变成一个列表。我以为我已经解决了这个问题,但是在我的print语句中,不是len
,而是为每个指数打印一个数字,然后为每个指数打印一个数字。我很难看清自己的错误所在。我的计划是:
def greatest_common_divisor(a_int, b_int):
if a_int > b_int:
dividend = a_int
divisor = b_int
else: # b >= a
dividend = b_int
divisor = a_int
remainder = dividend % divisor
quotient = dividend // divisor
while remainder != 0:
dividend = divisor
divisor = remainder
remainder = dividend % divisor
quotient = dividend // divisor
return divisor # which is the gcd
p =5
q = 7
n = p*q
header = ["p","q","n","e","diminished","gcd","unique remainders","max remainders"]
print(header)
for e in range(12,27):
unique_remainders_list = []
for x in range(1,(n+1)):
y = x**e % n
diminished = (p - 1)*(q - 1)
gcd = greatest_common_divisor(e, diminished)
max_uni_val = n-1
if not (y in unique_remainders_list):
unique_remainders_list.append(y)
print("{:>2} {:>4} {:>6} {:>4} {:>10} {:>9} {:>10} {:>16}".\
format(p,q,n,e,diminished,gcd,len(unique_remainders_list),max_uni_val, end = ' '))
打印示例:
['p', 'q', 'n', 'e', 'diminished', 'gcd', 'unique remainders', 'max remainders']
5 7 35 12 24 12 1 34
5 7 35 12 24 12 2 34
5 7 35 12 24 12 3 34
5 7 35 12 24 12 4 34
5 7 35 13 24 1 1 34
5 7 35 13 24 1 2 34
5 7 35 13 24 1 3 34
5 7 35 13 24 1 4 34
5 7 35 13 24 1 5 34
5 7 35 13 24 1 6 34
5 7 35 13 24 1 7 34
5 7 35 13 24 1 8 34
所以我想我在e的范围上有问题,我只是不知道在哪里。你知道吗
弄明白了,需要把我的打印报表移过去。我讨厌错过这么小的事情,但是谢谢你的帮助。你知道吗
相关问题 更多 >
编程相关推荐