Fişierul intrare/ieşire: | sumadiv.in, sumadiv.out | Sursă | Cerc informatică Vianu |
Autor | Cristian Francu | Adăugată de | |
Timp execuţie pe test | 0.05 sec | Limită de memorie | 2048 kbytes |
Scorul tău | N/A | Dificultate |
Sumadiv (clasa a 7-a)
Notă: acesta este un exerciţiu introductiv în recursivitate. Pentru a avea sens respectaţi cerinţa întocmai, rezolvîndu-l cu o funcţie recursivă. Dacă scrieţi corect funcţia ea nu trebuie să conţină instrucţiuni de ciclare, gen for, while sau do ... while.
Se citeşte un număr n. Să se scrie un program care să afişeze suma divizorilor lui n. Această sumă trebuie calculată folosind o functie recursivă care va arăta astfel:
int sumd( int n, int d ) {
...
}
Funcţia va fi apelată iniţial astfel:
suma = sumd( n, 1 );
Semnificaţia este suma divizorilor lui n care sînt mai mari sau egali cu d şi mai mici sau egali cu n / d.
Date de intrare
Fişierul de intrare sumadiv.in conţine un singur număr, n.
Date de ieşire
În fişierul de ieşire sumadiv.out se va scrie un singur număr şi anume suma divizorilor calculată recursiv.
Restricţii
- 1 ≤ n ≤ 100 000 000
- Se garantează că suma divizorilor nu va depăşi 2 000 000 000
Exemplu
sumadiv.in | sumadiv.out | Explicaţie |
---|---|---|
26 | 42 | Divizorii lui 26 sînt 1 2 13 26, a căror sumă este 42 |