Привет, мой код занимает слишком много времени и не дает ответа. мой код выдает ответ для gh в диапазоне (10 4) и диапазоне (10 5), но для более высоких диапазонов требуется много времени.
пожалуйста, не могли бы вы выяснить, что не так с кодом , спасибо.f
вам не нужно читать эту часть, она объясняет код. Этот код должен найти сильное число Ахиллеса. В коде я импортировал всю совершенную мощность и превратил их в 0 и go, избавляя от нулевых значений в коде. Я нахожу значения, которые можно делить на 2, 3 и 5 без остатка. код возвращает s = 1/2, если он делится на 2, m = 1/3, если он делится на 3, и n = 1/5, если он делится на 5. Значения будут умножены вместе для получения g, который эквивалентен значению φ (tl). (tl = vl [i], если tl = 864, g = φ (tl) = 288). a будет длиной значений j, k и h, r вычеркнет все нули в a. если минимальное значение в r больше или равно 2, то hjj = vl [i], ty + = [hjj]. TMl = [fj [i] для i, vl_ele в перечислении (vl), если vl_ele в ty] (имеется в виду, если vl [i] = 864, TMl = 288).
Значения TMl делятся на 2, 3 и 5 без остатка возвращает v = 1/2, если делится на 2, p = 1/3, если делится на 3, и c = 1/5, если делится на 5. Значения будут умножены вместе для получения f, который эквивалентен к значению φ (tl) (tl = vl [i], если tl = 864, g = φ (tl) = 288). l будет длиной значений t, o и c, r вычеркнет все нули в l. если минимальное значение в u больше или равно 2, tcount = mount и scount + = [tcount]. Масштаб должен быть на 656 ниже 10 ^ 8
stm = []
FF = []
ty = []
scount= []
from sympy import perfect_power
for gh in range(865):
inj = perfect_power(gh)
#print(i)
if inj== False:
Try= gh
stm += [Try]
else:
Try = 0
stm += [Try]
vl= list(filter(lambda nn: nn!=0,stm))
fj = []
jns = []
vcount = []
for i in range(len(vl)):
tl = vl[i]
# tl = i
h = []
k = []
j = []
rl = []
hq = []
hm = []
ll = 1
remain = 1
s = 0
m=0
n= 0
nw = 0
nt = 0
while tl > 1:
if tl%2 == 0:
remain = tl/2
tl = remain
j += [tl]
s = 1/2
elif tl%3 == 0:
remain = tl/3
tl = remain
k += [tl]
m = 1/3
elif tl%5 == 0:
remain = tl/5
tl = remain
h += [tl]
n = 1/5
#elif tl%7 == 0:
#remain = tl/7
#tl = remain
#hq += [tl]
#nw = 1/7
#elif tl%11 == 0:
#remain = tl/11
#tl = remain
#hm += [tl]
#nt = 1/11
else:
ll = 0
break
g = (((2**(len(j)))*(1-(s)))*((3**(len(k)))*(1-(m))) *(( 5**(len(h)))*(1-(n))) *((7**(len(hq)))*(1-(nw)))*((11**(len(hm)))*(1-(nt))))*ll
print(g)
q = int(round(g))
fj += [q]
TT = list(filter(lambda nn: nn!=0,fj))
a = [len(j)*ll,len(k)*ll,len(h)*ll,len(hq)*ll,len(hm)*ll]
if max(a) > 0:
jn = a
r = list(filter(lambda nn: nn!=0,jn))
#jns += [r]
if min(r) >= 2:
count = 1
rcount = count
vcount +=[rcount]
hjj = vl[i]
ty +=[hjj]
else:
count = 0
rcount = count
vcount += [rcount]
#print(len(vl))
#print(len(fj))
TMl = [fj[i] for i, vl_ele in enumerate(vl) if vl_ele in ty]
#print(TMl)
#print(len(ty))
#print(sum(vcount))
#print(ty)
mtm = []
for gtm in range(len(TMl)):
bnj = perfect_power(TMl[gtm])
#print(i)
if bnj== False:
bry= TMl[gtm]
mtm += [bry]
else:
bry = 0
mtm += [bry]
#print(mtm)
vln= list(filter(lambda nn: nn!=0,mtm))
for i in range(len(vln)):
TM = vln[i]
fp = 1
t = []
o = []
c = []
cp = []
cg = []
v=0
p=0
d=0
nj = 0
ij = 0
while TM>1:
if TM%2 == 0:
rem = TM/2
TM = rem
t += [TM]
v = 1/2
elif TM%3 == 0:
rem = TM/3
TM = rem
o += [TM]
p = 1/3
elif TM%5 == 0:
rem = TM/5
TM = rem
c += [TM]
d = 1/5
#elif tl%7 == 0:
#remain = tl/7
#tl = remain
#cg += [tl]
#nj = 1/7
#elif tl%11 == 0:
#remain = tl/11
#tl = remain
#cp += [tl]
#ij = 1/11
else:
fp = 0
break
#else:
#print('another no')
e = (2**(len(t)) * 3**(len(o)) * 5**(len(c)))*fp#*7**(len(cg))*11**(len(cp)))
f = e*(1-(v))*(1-(p))*(1-(d))#"""*(1-(nj))*(1-(ij))"""
w = int(round(f))
l = [len(t),len(o),len(c),len(cg),len(cp)]
#print(l)
if max(l) > 0:
px = l
u = list(filter(lambda nn: nn!=0,px))
#print(u)
if min(u) >= 2:
mount = 1
tcount = mount
scount +=[tcount]
else:
mount = 0
tcount = mount
scount += [tcount]
print(sum(scount))