[C++]Liczby zaprzyjaźnione

Zapytano Pitagorasa: Co to jest przyjaciel? - odpowiedział: Przyjaciel to drugi ja; przyjaźń, to stosunek liczb 220 i 284.

Przedstawiam krótki program napisany w C++ pozwalający nam znaleźć liczby zaprzyjaźnione w podanym przez z nas zakresie.

W ramach wyjaśnienia: Liczby zaprzyjaźnione to taka para liczb naturalnych, że suma dzielników każdej z tych liczb jest równa drugiej.

Przykład:

  • 220 = 1 + 2 + 4 + 71 + 142 (dzielniki 284)
  • 284 = 1 + 2 + 4 + 5 + 10 + 11 + 20 + 22 + 44 + 55 + 110 (dzielniki 220)
#include <cstdlib>
#include <iostream>

using namespace std;

int rozloz(int suma)
{
    int dodane=0;
    for(int i=1; i<suma; i++ )
    {
            if(suma%i==0)
            {

           dodane=dodane+i;

            }
  }
  return dodane;
}

int main(int argc, char *argv[])
{
    int poczatek_zakresu;
    int koniec_zakresu;
    int i;
    int suma;
    int suma2;

    cout << "Podaj zakres poczatkowy:";
    cin >> poczatek_zakresu;
    cout << endl << "Podaj zakres końcowy:";
    cin >> koniec_zakresu;

    for(i=poczatek_zakresu;i<koniec_zakresu;i++)
    {

           suma=rozloz(i);

          if(suma < koniec_zakresu )
          {
           suma2=rozloz(suma);
          }

           if(i==suma2&&suma!=suma2)
           {
             i=suma;
           cout << "Dwie liczby blizniacze to:" << suma2<<" i " << suma << endl;
           }

         }                                                                              

    system("PAUSE");
    return EXIT_SUCCESS;
}

Program napisany w C++ znajdujący liczby zaprzyjaźnione. Skompilowany przy pomocy programu DEV C++. Program można udoskonalić dodając opcję zapisywania wszystkich odnalezionych par liczb, aby nie wyświetlały się one kolejny raz. Jest to pominięte w celu poprawienia czytelności kodu.

Kilka przykładów liczb zaprzyjaźnionych:

  • 220 i 284
  • 1184 i 1210
  • 2620 i 2924
  • 5020 i 5564
  • 6232 i 6368
  • 10744 i 10856
  • 12285 i 14595
  • 17296 i 18416
  • 63020 i 76084
  • 66928 i 66992
  • 67095 i 71145
  • 69615 i 87633
  • 79750 i 88730
  • 100485 i 124155
  • 122265 i 139815
  • 122368 i 123152
  • 124155 i 100485
  • 1222265 i 139815
  • 141664 i 153176
  • 168730 i 142310
  • 153176 i 168730
  • 142310 i 168730
  • 171856 i 176336
  • 180848 i 176272
  • 185368 i 203432
  • 280540 i 365084
  • 389924 i 308620
  • 319550 i 430402
  • 437456 i 455344
  • 469028 i 486178
  • 503056 i 514736
  • 522405 i 525915
  • 600392 i 669688
  • 686072 i 609928
  • 624184 i 691256
Ten wpis został opublikowany w kategorii C++, Programowanie i oznaczony tagami , , . Dodaj zakładkę do bezpośredniego odnośnika.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *

*

Możesz użyć następujących tagów oraz atrybutów HTML-a: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>