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