Mam do napisania algorytm wypisujący cztery pierwsze liczby doskonałe. Nie wiem, dlaczego program po uruchomieniu wypisuje 2 i 3. Czy ktoś mógłby powiedzieć mi, gdzie zrobiłem błąd?
#include <iostream>
using namespace std;
bool czy_doskonala(int l){
int s = 1;
for (int i = 2; i <= l/2;l++){
if(l % i == 0)
s+=i;
if ( s==l)
return true;
return false;
}
}
int main()
{
for( int i = 1; i < 10000; i++){
if (czy_doskonala(i)){
cout<<i<<endl;}
}
return 0;
}