Dzielniki liczby

0

Witam wszystkich. Na początku dodam, iż jestem początkujący w C++. Chciałbym napisać program który wypisze wszystkie dzielniki liczby n. Napisałem program, ale po uruchomieniu wywala błąd: "Floating point exception (core dumped)" i funkcja main zwraca 136.
Oto kod programu:

#include <iostream>
using namespace std;
int n;
int main()
{
    n=0;
    cin >> n;
    for(int a = 0; a <= n; a++)
    {
        if(n%a == 0)
        {
            cout << n << endl;
        }
    }
    cin.ignore(2);
    return 0;
}
 

Z góry dziękuję za udzieloną pomoc.

1
 if(n%a == 0) 

Dzielenie przez zero przy pierwszym cyklu w pętli.

0

Dziękuję, działa.

0

Bo za każdym razem jak znajdujesz dzielnik wyświetlasz liczbę której dzielniki szukasz?

0

A ja bym jeszcze na początku dodał zabezpieczenie, aby nie dało się wpisać liczb mniejszych od dwóch (bo one nie są ani pierwsze, ani złożone).

0

edit: nie lubie jak ktoś nie mysli a potem edytuje posty...

0

Ok, działa. Ale kiedy wrzucam kod źródłowy na "sprawdzarkę" to przyznaje mi tylko 88% powód "time limit". Wiecie może dlaczego?

0

Bo cin i cout są bardzo powolne. Użyj scanf i printf. Poza tym zapewniam cię że dzielnika liczby nie znajdziesz powyżej n/2

0
Kil0bajt napisał(a):

... tylko 88% powód "time limit". Wiecie może dlaczego?
Bo próbują wykresać z was o drobinę myślenia?

1 użytkowników online, w tym zalogowanych: 0, gości: 1