Liczby doskonałe.
Ostatnio zmodyfikowano 2014-09-22 12:01
Anim Temat założony przez niniejszego użytkownika |
Liczby doskonałe. » 2014-09-22 11:45:34 cześć. Mam do stworzenia program który znajduje liczby doskonałe. I w sumie cacy :) działa...ale nie do końca ;p Zacząłem od znalezienia dzielników podanej liczby : #include <iostream> #include <math.h> using namespace std;
int main() { int n; int a = 0; int suma = 0; float b; cout << "Podaj liczbe n = "; cin >> n; while( a <= n / 2 ) { a++; b = n / a; if(( n % a ) == 0 ) cout << "Calkowite dzielniki liczby n: " << a << "\n" << endl; } }
Program działa, wypisuje dzielniki. Czyli teraz wypada, aby je sumował: dodałem sobie dwa wiersze - po if-ie, oraz za pętlą #include <iostream> #include <math.h> using namespace std;
int main() { int n; int a = 0; int suma = 0; float b; cout << "Podaj liczbe n = "; cin >> n; while( a <= n / 2 ) { a++; b = n / a; if(( n % a ) == 0 ) suma += a; cout << "Calkowite dzielniki liczby n: " << a << "\n" << endl; } cout << "suma = " << suma << "\n" << endl; }
i w tym momencie ładnie sumuje dzielniki liczby - czyli można stwierdzić, czy liczba jest doskonała, czy też nie. Jednak przestało wypisywać dzielniki a wypisuje po prostu numer iteracji. Dlaczego tak się stało ? |
|
SeaMonster131 |
» 2014-09-22 11:49:48 if(( n % a ) == 0 ) cout << "Calkowite dzielniki liczby n: " << a << "\n" << endl;
if(( n % a ) == 0 ) suma += a;
cout << "Calkowite dzielniki liczby n: " << a << "\n" << endl;
Myślę, że różnica jest widoczna. |
|
Anim Temat założony przez niniejszego użytkownika |
» 2014-09-22 12:01:38 Nie wiem w sumie co miałem dojrzeć :) Pomyślałem o klamrach po if {}... i wiecie co ? zadziałało :) Także jak to miałem dojrzeć to dziękuję. Pół godziny siedzenia nad takim maleństwem :) |
|
« 1 » |