Cod sursa(job #1549527)

Utilizator avaspAva Spataru avasp Data 12 decembrie 2015 14:15:24
Problema Zero 2 Scor 63
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.11 kb
#include<cstdio>
using namespace std;
int n,b,put,bi;

long long solve(int bb){
    int p2=1,rid=0;
    if(bb>n)
        return 0;
    long long rez=1;
    int d=n/bb;
    rez=rez*(n*d +d -bb*((d*(d+1)/2)));
    return rez+solve(bb*bi);
}

int main(){
    int cb,div;
    long long p,minim;
    freopen("zero2.in","r",stdin);
    freopen("zero2.out","w",stdout);
    for(int i=1;i<=10;i++){
        scanf("%d%d",&n,&b);
        minim=-1;
        cb=b;
        int putereaa=0;
        div=2;
        while(cb!=1&&div*div<=cb){
            put=1;
            bi=div;
            putereaa=0;
            if(cb%div==0){
                p=solve(div);
                while(cb%div==0){
                    cb/=div;putereaa++;
                }
                p=p/putereaa;
                if(p<minim||minim==-1)
                    minim=p;

            }
            div++;
        }
        if(cb!=1){
            bi=cb;
            put=1;
            p=solve(cb);
            if(p<minim||minim==-1)
                minim=p;
        }

        printf("%lld\n",minim);
    }
    return 0;
}