TOPIC

PROBLEM 1626 - URI Fórum 1.0

beecrowd asked 9 years ago

URI Online Judge Fórum 1.0

MOD

This topic was solved and cannot recieve new replies.

  • rseocepython replied 8 years ago

    Aritmética modular talvez seja a saída para calcular o fatorial. Para calcular a função sumDiv (soma dos divisores) precisamos decompor o n! em fatores primos e usar esses fatores primos para calcular a soma dos divisores de n!. A minha dúvida é: sumDiv (N! mod (10e9 + 7)) = sumDiv (N!) mod (10e9 + 7) ? Alguém pode dar uma luz??

  • andresroliveira replied 8 years ago

    Tem algum modo de fazer esse exercício com matemática msm? Estou usando força bruta mas o tempo esta muito grande! Demora muito! Alguem poderia me ajudar?

    Segue o code:

    #include<bits/stdc++.h>
    
    using namespace std;
    
    int k[10010],v[10010],cont;
    
    void vet(){
        k[0] = k[1] = 1; v[0] = v[1] = 0;
    
        for(cont=2;cont<10010;cont++){
            k[cont] = k[cont-1] * cont;
    
            k[cont] %= 1000000007;
    
            v[cont] = 0;
    
            for(int c=1;c<k[cont];c++){
                if(k[cont] % c == 0) v[cont] += c;
            }
    
            v[cont] %= 1000000007;
    
            printf("K[%d] = %d  ||  V[%d] = %d\n",cont,k[cont],cont,v[cont]);
        }
    }
    
    int main(){
        vet();
    
        int n;
    
        while(~scanf("%d",&n)){
                printf("%d %d\n",k[n],v[n]);
        }
    
        return 0 ;
    }