如何獲得GCD(2^a [i] -1,2^a [j] -1) 其中1 < = a [x] < = 100GCD的形式2^i-1
from fractions import gcd
powj=pow(2,n[j])-1
powk=pow(2,n[k])-1
gcdjk=gcd(powj,powk)
會導致大量問題,並會導致運行時錯誤。
我看不到2^i-1值中的模式,除了除了1和自身以外沒有其他因素的質數。
i 2^i -1
--------------
1 1 = 1
2 3 = 1,3
3 7 = 1,7
4 15 = 1,3,5,15
5 31 = 1,31
6 63 = 1,3,7,9,21,63
7 127= 1,127
8 255= 1,3,5,15,17,51,85,255
編輯:需要解決此爲形式2^I-1 ONLY的號碼。以下是代碼:
import sys
import math
from fractions import gcd
t=int(input())
for i in range(0,t):
door=0
c=int(input())
n = map(int,sys.stdin.readline().split(' '))
for j in range(0,c-1):
for k in range(j+1,c):
if(gcd(n[j],n[k]) == n[k]):
powj=pow(2,n[j])-1
powk=pow(2,n[k])-1
gcdjk=gcd(powj,powk)
if(gcdjk==powk):
door = door+1
else:
door = door-gcdjk
print (door)
輸入採樣:
2
3
10 2 3
2
3 5
約束:
1<=T<=20
1<=ArraySize<=10^5
1<=a[i]<=100
@RC。我正在尋找答案作爲2^i - 1的特殊情況,所以它不是重複的。 –
你可以顯示你得到的錯誤的追溯? – user2357112
對不起,網上法官不會告訴我,我找不到一個不好的情況。 –