12.39.1 Za učitani broj izračunati sumu njegovih netrivijalnih djelilaca.
Opis rješenja: Podsjetimo se da je trivijalni djelilac je 1 i taj broj. Rješenje se svodi na provjeru djelioca od 2 do polovine broja (n % i == 0). Djelilac može biti samo do polovine vrijednosti broja te se provjera izvodi do n/2.
Tabela 8.15. Test primjeri
test |
I |
II |
III |
I V |
V |
VI |
VII |
Broj |
6 |
10 |
24 |
64 |
100 |
115 |
999 |
Suma djelilaca |
5 |
7 |
35 |
62 |
116 |
28 |
520 |
Listing programa:
//12103901//
#include <iostream>
#include <cmath>
using namespace std;
main()
{
int i,s,n;
cout<<"Suma djelilaca"<<endl;
cout<<"Do broja: "<<endl;
cin>>n;
s=0;
for(i=2; i<=(n/2); i++)
if(n % i == 0)
s=s+i;
cout<<"Suma djelilaca= "<<s<<endl;
return 0;
}
Ispis na ekranu:
Index
|