다음 코드를 가지고 있으며 변수 a에 제곱 한 숫자의 가장 큰 소수 요소를 찾으려고합니다. 인쇄 테스트를 할 때 iterator가 증가하지 않는 것 같습니다. 코드는 무한히 실행됩니다. 어떤 팁? 이것이 무한 루프가되는 지점을 놓치고 있습니까?파이썬 시작하기, 반복자 작업을 할 수 없습니다.
import math
a = math.sqrt(600851475143)
primefactors = [0]
i=1
while i<=a:
if a%i == 0:
if i%2 != 0 and i%3 != 0 and i%4 != 0 and i%5 != 0 and i%6 != 0 and i%7 != 0 and i%8 != 0 and i%9 != 0:
primefactors.append(i)
print(primefactors)
i=i+1
편집 : 상한값과 테스트 값을 모두 실수로 사용함. 모든 해답을 가져 주셔서 감사합니다!
매우 긴 if 문은 다음과 같이 단순화 할 수 있습니다. '모든 경우 (x, 범위 내 (2, 10)의 경우 x : % x) : – iCodez
일반적으로 접근 방식이 작동하지 않을 것이라고 확신합니다. – JJJ
'a'에 대해 더 낮은 값을 사용하여 느린지 테스트 해보십시오. –