19/02/10 15:12:41.36 95x0uvij.net
>>62 python
# n%(2**24-1) を求める
def mod224get(n):
bn=(n.bit_length()+7)//8 #byte長
bb=n.to_bytes(bn,'little')
s= sum([int.from_bytes(bb[i:i+3],'little')
for i in range(0,bn,3) ]) #24bit毎の合計
return s%(2**24-1)
v0=12345678901234567890
#v0=0
n=v0**2
loop = 100000
print('テスト範囲は ',n,'~',n+loop-1,'loop回数=',loop)
start =time.process_time()
for i in range(n,n+loop):
if mod224get(n) != n%(2**24-1) :print('間違い見っけ',n)
end =time.process_time()
print('全問正解 かかった時間は、',end-start,'秒')
#
― 結果
テスト範囲は 152415787532388367501905199875019052100 ~ 152415787532388367501905199875019152099 loop回数= 100000
全問正解 かかった時間は、 0.2963889999999765 秒