• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Liczby zaprzyjaźnione <1000000

Cloud VPS
0 głosów
1,454 wizyt
pytanie zadane 17 października 2020 w Python przez Pelo Użytkownik (520 p.)
przywrócone 17 października 2020 przez adrian17

Cześć, mam za zadanie zrobić program do szukania liczb zaprzyjaźnionych mniejszych od miliona.

Oto mój kod:

#Zadanie 11. Napisać program wyszukujący liczby zaprzyjaźnione mniejsze od miliona.

for y in range (1,1000001):
    k = y-1
    suma1  = 0
    while k>0 :
        if y%k==0:
            suma1+=k
        k-=1
    for x in range (y,1000000):
        p = x - 1
        suma2 = 0
        while p > 0:
            if x % p == 0:
                suma2 += p
            p -= 1
        if suma1==x and suma2==y and x!=y:
            print("Znalazłem parę liczb zaprzyjaźnionych:",x,y)

I tutaj moje pytanie: co zrobić aby program wykonał zadanie szybciej? 

1 odpowiedź

+1 głos
odpowiedź 17 października 2020 przez adrian17 Mentor (354,700 p.)
wybrane 17 października 2020 przez Pelo
 
Najlepsza
Druga pętla `for x in range (y,1000000)` jest niepotrzebna. Wiesz, że jedyną sensowną drugą liczbą do pary jest suma dzielników pierwszej liczby. Wystarczy sprawdzić, czy właściwość sprawdza się też w drugą stronę.
1
komentarz 17 października 2020 przez adrian17 Mentor (354,700 p.)
edycja 17 października 2020 przez adrian17
Bonusowa rada: żeby policzyć sumę dzielników (lub ogólnie, zbiór dzielników) liczby N, nie musisz się iterować N razy - da się znacznie mniej :)

Z tymi radami, mój kod pokazuje wszystkie w mniej niż minutę.
komentarz 17 października 2020 przez Pelo Użytkownik (520 p.)
Bardzo dziękuję za pomoc :)

Podobne pytania

+1 głos
0 odpowiedzi 3,298 wizyt
0 głosów
1 odpowiedź 562 wizyt
0 głosów
1 odpowiedź 585 wizyt

93,486 zapytań

142,420 odpowiedzi

322,771 komentarzy

62,901 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Kursy INF.02 i INF.03
...