Suma de divisors de longitud senar P60878


Statement
 

pdf   zip   main.cc

thehtml

Donat un natural estrictament positiu n, calculeu-ne la suma dels divisors amb un nombre senar (imparell) de dígits.

Per exemple, els divisors de 120 són 1, 2, 3, 4, 5, 6, 8, 10, 12, 15, 20, 24, 30, 40, 60 i 120. Per tant, la suma en aquest cas és 1 + 2 + 3 + 4 + 5 + 6 + 8 + 120 = 149.

Escriviu una funció

int suma_divisors_longitud_senar(int n);

que calculi eficientment i retorni la suma dels divisors d’n amb un nombre senar de dígits.

Precondició

Es compleix 1 ≤ n ≤ 108.

Observació Només cal enviar el procediment demanat; el programa principal serà ignorat.

Public test cases
  • Input/Output

    suma_divisors_longitud_senar(120) → 149
    suma_divisors_longitud_senar(1) → 1
    suma_divisors_longitud_senar(42) → 19
    suma_divisors_longitud_senar(99999989) → 1
    suma_divisors_longitud_senar(100000000) → 127165024
  • Information
    Author
    Salvador Roura
    Language
    Catalan
    Other languages
    Spanish
    Official solutions
    C++
    User solutions
    C++