Python 3의 소인수 분해에 대한 for 루프 및 while 루프의 다른 결과

디에이 샤

주어진 정수의 소인수를 반환하는 함수를 작성했습니다. 내가 테스트 한 케이스의 경우 제대로 작동하는 것 같습니다. 다음은 원래 기능입니다.

def prime_factors_2(num: int) -> set:
    factors = []
    while num % 2 == 0:
        factors.append(2)
        num //= 2
    i = 3
    while i <= int(sqrt(num)) + 1:
        if num % i == 0:
            factors.append(i)
            num //= i
        else:
            i += 2
    if num != 1:
        factors.append(num)
    return set(factors)
    # num = 867844
    # Output = {601, 2, 19}

코드를 엉망으로 만들면서 동일한 구현을 시도했지만 while 루프 대신 for 루프를 사용했습니다 (카운팅이 관련 될 때 for 루프를 사용하는 것을 선호하므로). 두 번째 함수의 코드입니다.

def prime_factors_1(num: int) -> set:
    factors = []
    while num % 2 == 0:
        factors.append(2)
        num //= 2
    for i in range(3, int(sqrt(num)) + 1, 2):
        if num % i == 0:
            factors.append(i)
            num //= i
            print(num)
    if num != 1:
        factors.append(num)
    return set(factors)
    # num = 867844
    # Output = {2, 19, 11419}

어떤 이유로 더 이상 11419를 601과 19로 고려하지 않습니다. 두 루프가 동일하지 않습니까? 아니면 while 루프를 for 루프로 변환하는 동안 실수를하고 있습니까? 이 경우 두 루프 사이에 실질적인 차이가 없다는 것을 알고 있지만 순수한 호기심에서 이것을 알고 싶습니다.

체탄

문제는 "while 루프"에서 "if"조건이 충족되지 않을 때만 "i"값을 2 씩 증가시키고 "for 루프"의 경우 i가 각각 2 씩 증가한다는 것입니다. 되풀이.

따라서 다음과 같이한다면 :

while i <= int(sqrt(num)) + 1:
    if num % i == 0:
        factors.append(i)
        num //= i
    i += 2

그런 다음 prime_factors_2 함수는 prime_factors_1 함수와 동일한 답을 반환합니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

PHP 첫 번째 while 루프의 출력 결과를 쿼리에 대한 두 번째 while 루프의 변수로

분류에서Dev

자바에서 루프 (A)의 최소 및 최대 결과

분류에서Dev

체인의 다음 개체에 대한 효과적인 While 루프

분류에서Dev

while 루프 내부의 다른 while 루프, 무한 루프

분류에서Dev

for 및 while 루프의 결과가 다른 이유는 무엇입니까?

분류에서Dev

다른 과목 R에 대한 다른 조건에 대한 루프의 순위 및 순서

분류에서Dev

mysqli 결과에 대한 while 루프

분류에서Dev

Python 3의 for 루프에 대한 데이터 유형 및 문서

분류에서Dev

C, Perl 및 Python 유사한 루프가 다른 결과

분류에서Dev

Python : while 루프의 함수

분류에서Dev

함수의 While 루프 (Python)

분류에서Dev

HTML의 div 요소에 대한 아름다운 수프 루프

분류에서Dev

Java에서 'for each'및 'for'루프를 사용한 다른 결과

분류에서Dev

함수에서 루프하고 루프마다 다른 결과 저장 Python

분류에서Dev

r for 루프와 if else 문 및 이전 반복의 결과에 대한 참조

분류에서Dev

Javascript에서 do / while 및 For 두 개의 루프를 수행해야합니다.

분류에서Dev

PHP의 행에 대한 while 루프

분류에서Dev

for 루프를 사용하여 차수 수준이 다른 다양한 다항 회귀 모델의 결과에 대해 ANOVA를 수행하는 방법

분류에서Dev

PHP while 루프 및 루프 내부의 다른 요소와 관련된 자바 스크립트 / Jquery 사용

분류에서Dev

사이트의 결과는 다르지만 주소에서 urllib 및 bs4를 사용하는 모든 루프에서 동일한 결과를 얻음

분류에서Dev

무한 while 루프의 QtableView 및 모델

분류에서Dev

Python- 루프의 모든 결과를 변수에 쓰기

분류에서Dev

while 및 for 루프의 Python 인덱싱 문제

분류에서Dev

(C 언어) while 루프에 가능한 두 개의 다른 정수 값에 대한 조건부 인수를 넣는 방법이 있습니까?

분류에서Dev

for 루프와 목록 이해의 다른 결과

분류에서Dev

for 루프 안에 while 루프의 결과를 저장하는 파이썬

분류에서Dev

For 루프에서 "enumerate"및 3 개의 변수에 대한 또 다른 이터 러블의 압축을 푸는 방법

분류에서Dev

Python의 목록에 대한 For 루프

분류에서Dev

while 루프 및 배열에 관한 내 코드의 문제

Related 관련 기사

  1. 1

    PHP 첫 번째 while 루프의 출력 결과를 쿼리에 대한 두 번째 while 루프의 변수로

  2. 2

    자바에서 루프 (A)의 최소 및 최대 결과

  3. 3

    체인의 다음 개체에 대한 효과적인 While 루프

  4. 4

    while 루프 내부의 다른 while 루프, 무한 루프

  5. 5

    for 및 while 루프의 결과가 다른 이유는 무엇입니까?

  6. 6

    다른 과목 R에 대한 다른 조건에 대한 루프의 순위 및 순서

  7. 7

    mysqli 결과에 대한 while 루프

  8. 8

    Python 3의 for 루프에 대한 데이터 유형 및 문서

  9. 9

    C, Perl 및 Python 유사한 루프가 다른 결과

  10. 10

    Python : while 루프의 함수

  11. 11

    함수의 While 루프 (Python)

  12. 12

    HTML의 div 요소에 대한 아름다운 수프 루프

  13. 13

    Java에서 'for each'및 'for'루프를 사용한 다른 결과

  14. 14

    함수에서 루프하고 루프마다 다른 결과 저장 Python

  15. 15

    r for 루프와 if else 문 및 이전 반복의 결과에 대한 참조

  16. 16

    Javascript에서 do / while 및 For 두 개의 루프를 수행해야합니다.

  17. 17

    PHP의 행에 대한 while 루프

  18. 18

    for 루프를 사용하여 차수 수준이 다른 다양한 다항 회귀 모델의 결과에 대해 ANOVA를 수행하는 방법

  19. 19

    PHP while 루프 및 루프 내부의 다른 요소와 관련된 자바 스크립트 / Jquery 사용

  20. 20

    사이트의 결과는 다르지만 주소에서 urllib 및 bs4를 사용하는 모든 루프에서 동일한 결과를 얻음

  21. 21

    무한 while 루프의 QtableView 및 모델

  22. 22

    Python- 루프의 모든 결과를 변수에 쓰기

  23. 23

    while 및 for 루프의 Python 인덱싱 문제

  24. 24

    (C 언어) while 루프에 가능한 두 개의 다른 정수 값에 대한 조건부 인수를 넣는 방법이 있습니까?

  25. 25

    for 루프와 목록 이해의 다른 결과

  26. 26

    for 루프 안에 while 루프의 결과를 저장하는 파이썬

  27. 27

    For 루프에서 "enumerate"및 3 개의 변수에 대한 또 다른 이터 러블의 압축을 푸는 방법

  28. 28

    Python의 목록에 대한 For 루프

  29. 29

    while 루프 및 배열에 관한 내 코드의 문제

뜨겁다태그

보관