Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

[C++] Szukanie liczb doskonałych

Ostatnio zmodyfikowano 2015-11-04 11:33
Autor Wiadomość
wowo95
Temat założony przez niniejszego użytkownika
[C++] Szukanie liczb doskonałych
» 2015-11-03 16:00:38
Witam
Chciałem napisać program, który wypisze liczby doskonałe z przedziału od 1-100 ale nie mogę znaleźć i zrozumieć błędu w napisanym kodzie. Proszę o pomoc i krótkie wyjaśnienie gdzie popełniłem błąd.
Pozdrawiam

#include<iostream>
using namespace std;
int main()
{
    int tablica[100];
    int n=0;
    int m=1;
    do
    {
        tablica[n]=m;
        n++;
        m++;
    }while(n<100);

    int i=0;
    int c;
    int s=0;
    int g=0;

        do
        {
            while(i<tablica[1+g])
            {
            c=tablica[1+g];
            if(tablica[1+g]%i==0)
            {
                s=s+i;
                if(s==c)
                {
                    cout<<c<<", ";
                }
            }
            i++;
            }
            i=0;
            g++;
        }while(g<98);


    return 0;
}
P-139549
darko202
» 2015-11-04 11:33:09
1.
zacznij od problemu dzielenia przez 0

int i = 0;
....
  if(tablica[1+g]%i==0) // <-- tu dzielisz przez 0

2.
po zakończeniu pętli
nie zerujesz zmiennej s
co powoduje, ze nie możesz spełnić warunku testu na liczbę doskonałą

np. 6 - najmniejsza liczba doskonała
    na starcie s = 7





P-139623
« 1 »
  Strona 1 z 1