Cod sursa(job #1045584)

Utilizator iuli33Iuliana iuli33 Data 1 decembrie 2013 19:11:31
Problema Pascal Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.21 kb
#include<fstream>
using namespace std;
ifstream in("pascal.in");
ofstream out("pascal.out");
int inits, initj, r, k, n, n2, c;

int nrd(int x, int d){
    int nr=0;
    while (x%d==0){
        nr++;
        x/=d;
    }
    return nr;
}
int f(){
    inits=r;
    initj=1;
    if(k==2||k==3||k==5)
        for (int i=1; i<=r/2; i++){
            n=n+nrd(inits, k)-nrd(initj, k);
            inits--;
            initj++;
            if (n>0)
                c+=2;
            if (i==r/2 && r%2==0 && n>0)
                c--;
            }
    if (k==4)
        for (int i=1; i<=r/2; i++){
            n=n+nrd(inits, 2)-nrd(initj, 2);
            inits--;
            initj++;
            if (n>1)
                c+=2;
            if (i==r/2 && r%2==0 && n>0)
                c--;
            }
    if (k==6)
        for (int i=1; i<=r/2; i++){
            n=n+nrd(inits, 2)-nrd(initj, 2);
            n2=n2+nrd(inits, 3)-nrd(initj, 3);
            inits--;
            initj++;
            if (n>0&&n2>0)
                c+=2;
            if (i==r/2 && r%2==0 && n>0)
                c--;
            }
    return c;
}

int main(){

    in>>r>>k;
    out<<f();

    return 0;
}