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 DIV 1). Djelilac može biti samo do polovine vrijednosti broja te se provjera izvodi do n/2.

Tabela 8.15. Suma djelilaca broja

Listing programa

Ekran

Opis

PROGRAM SumaDjelilac;

 

Naslov programa

VAR

 

Promjenljive

  i, s, n: INTEGER;

 

 

BEGIN

 

 

  WRITELN('Suma djelilaca');

Suma djelilaca

Naslov programa

 WRITE('Do broja ');

Do broja

 

 READLN(n);

10

 

 s := 0;

 

Početna vrijednost sume s

 FOR i :=2 TO n DIV 2 DO

 

Promjena  j od 2 do n/2

   IF n MOD i = 0 THEN s:=s+i;

 

Djelilac ?

 WRITELN ('Suma djelilaca =', s);

7

Ispis sume

END.

 

Kraj programa

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

Opis rješenja: Imamo n sabiraka, i formiramo sumu od sabiraka. Predznak pri sabiranju se posebno izračunava svakom prolazu (znak).

Listing programa:

PROGRAM SumaDjelilac;
USES
  WinCrt;VAR
  i, s, n: INTEGER;
BEGIN
  WRITELN('Suma djelilaca');
 WRITE('Do broja ');
 READLN(n);
 s := 0;
 FOR i :=2 TO n DIV 2 DO
   IF n MOD i = 0 THEN s:=s+i;
 WRITELN ('Suma djelilaca =', s);
END.

Index