Suma de divisores de longitud impar P60878


Statement
 

pdf   zip   main.cc

thehtml

Dado un natural estrictamente positivo n, calculad la suma de sus divisores con un número impar de dígitos.

Por ejemplo, los divisores de 120 son 1, 2, 3, 4, 5, 6, 8, 10, 12, 15, 20, 24, 30, 40, 60 y 120. Por tanto, la suma en este caso es 1 + 2 + 3 + 4 + 5 + 6 + 8 + 120 = 149.

Escribid una función

int suma_divisores_longitud_impar(int n);

que calcule eficientmente y retorne la suma de los divisores de n con un número impar de dígitos.

Precondición

Se cumple 1 ≤ n ≤ 108.

Observación Sólo tenéis que enviar el procedimiento requerido; el programa principal será ignorado.

Public test cases
  • Input/Output

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