Wykonałem poniższe zadanie, lecz sprawdzarka nie przepuszcza, dostaje 2/3 pkt i nie pisze przy czym się wywala, wie ktoś może co jest źle?
Tresc zadania:
Wejście
Liczba naturalna N (N<1000), a następnie N liczb naturalnych (nie większych niż 32000).
Wyjście
Dla każdej z podanych na wejściu liczb program powinien wydrukowań na ekranie wiersz postaci:
X - liczba doskonala/nadmiarowa/deficytowa
w zależności od typu liczby.
Przykładowe wejście
6 15 28 6 56 22 496
Przykładowe wyjście
15 - liczba nadmiarowa
28 - liczba doskonala
6 - liczba doskonala
56 - liczba deficytowa
22 - liczba nadmiarowa
496 - liczba doskonala
#include <iostream>
using namespace std;
int main()
{
int n;
cin >> n;
if (n < 1000)
{
int *tab = new int[n];
for (int i = 0; i < n; i++)
{
int x = 0;
cin >> tab[i];
}
for (int k = 0; k < n; k++)
{
int sum = 0;
for (int d = 1; d < tab[k]; d++)
{
if (tab[k] % d == 0)
{
sum += d;
}
}
if (tab[k] != 0 && tab[k] < 32000)
{
if (tab[k] < sum)
{
cout << tab[k] << " - liczba deficytowa" << endl;
}
else if (tab[k] > sum)
{
cout << tab[k] << " - liczba nadmiarowa" << endl;
}
else
{
cout << tab[k] << " - liczba doskonala" << endl;
}
}
}
delete[] tab;
return 0;
}
}