J'ai en fait remarqué cela dans le problème AtCoder suivant: https://atcoder.jp/contests/abc162/tasks/abc162_c Je tournais un 200 * 200 * 200 pour déclaration.
La sortie a été faite avec la fonction d'impression
pour vérifier l'opération.
J'utilise le module «temps» pour la mesure du temps.
import time
import math
k=int(input())
stat = time.time()
k+=1
ans=0
for i in range(1,k):
for j in range(1,k):
for z in range(1,k):
print(i,j,k)
print(math.gcd(math.gcd(i,j),z))
ans+=math.gcd(math.gcd(i,j),z)
end = time.time()
print(ans)
print(end-stat)
##k=10 => 0.0718231201171875(s)
##k=100 => 20.816463232040405(s)
import math
import time
k=int(input())
start = time.time()
k+=1
ans=0
for i in range(1,k):
for j in range(1,k):
for z in range(1,k):
ans+=math.gcd(math.gcd(i,j),z)
end = time.time()
print(ans)
print(end-start)
#k=10 => 0.0009169578552246094(s)
#k=100 => 0.4900369644165039(s)
Il semble que cela prend beaucoup de temps si «print» se chevauche également. Essayez-le d'abord en imprimant un peu (k = 10 cette fois) Vous devez commenter lors du calcul des commandes chronophages.
Recommended Posts