logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

C++ - Jak znaleźć 10 pierwszych par liczb zaprzyjaźnionych?

czarek199 10 Sty 2013 09:31 4104 4
REKLAMA
  • #1 11767939
    czarek199
    Poziom 10  
    Posty: 29
    Witam
    Mam program który wyszukuje mi liczby zaprzyjaźnione w podanym przeze mnie zakresie. Mógłbym prosić o przekształcenie tego kodu tak aby wyszukiwał mi po prostu 10 pierwszych liczb zaprzyjaźnionych ?

    #include<iostream>

    using namespace std;

    int SumaDzielnikow(int liczba)
    {
    int suma = 0;
    for(int i=1;i<liczba;i++)
    {
    if((liczba % i) == 0)
    {
    suma += i;
    }
    }
    return suma;

    }

    int main()
    {
    int suma = 0;
    int suma2 = 0;
    int exc=0;
    int counter = 0;
    for(int i=2;i<11000;i++)
    {
    suma = SumaDzielnikow(i);
    for(int j=2;j<11000;j++)
    {
    if(j == suma && i != j && i!= exc)
    {
    suma2 = SumaDzielnikow(j);
    if(suma2 == i)
    {
    cout<<"\n pierwsza liczba "<<i<<" druga liczba "<<j<<"\n";
    exc = j;
    counter++;
    break;
    }
    }
    }
    if(counter == 10)
    break;

    }

    char z;
    cin>>z;
    return 0;
    }

    Proszę pamiętać o używaniu znaczników syntax. Opcja Listing kodu. Proszę to poprawić! - arnoldziq
  • REKLAMA
  • #2 11768140
    Defice
    Poziom 25  
    Posty: 698
    Pomógł: 101
    Ocena: 15
    A w czym problem, żeby przeszukiwał do jakiejś kosmicznej wartości? Dajmy na to ustaw wartość w for na 5mln. Po znalezieniu 10 i tak przerwie działanie.
  • REKLAMA
  • #3 11770313
    czarek199
    Poziom 10  
    Posty: 29
    A nie da się tego jakoś inaczej ominąć? Po zwiększeniu tam tej liczby do której ma szukać tych liczb znacznie zwiększył się czas działania programu
  • REKLAMA
  • #4 11770513
    Defice
    Poziom 25  
    Posty: 698
    Pomógł: 101
    Ocena: 15
    To sprawa oczywista, dłuższy czas pracy programu wynika z większej ilości obliczeń. Jedyne co może sprawić, że czas obliczeń będzie krótszy to zmiana algorytmu szukania tych liczb.
  • #5 11773941
    czarek199
    Poziom 10  
    Posty: 29
    A jak zmienić ten algorytm? Coś mi się zdaje ze po znalezieniu jednej liczby program znowu przeszukuje od zera.. Jak ustawić żeby program szukał następnej liczby nie od początku a od ostatniej znalezionej ?
REKLAMA