Cod sursa(job #905670)

Utilizator ana_2605ana maria ana_2605 Data 6 martie 2013 01:01:11
Problema Pascal Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.77 kb
#include <iostream>
#include <fstream>
#include <math.h>

using namespace std;

ifstream f("pascal.in");
ofstream g("pascal.out");

long r,d,nr,i,c[6],n1,n2,n;

void ordine ()
{
    while(n1%2==0) {c[2]++; n1/=2; }
    while(n1%3==0) {c[3]++; n1/=3; }
    while(n1%5==0) {c[5]++; n1/=5; }
    while(n2%2==0) {c[2]--; n2/=2; }
    while(n2%3==0) {c[3]--; n2/=3; }
    while(n2%5==0) {c[5]--; n2/=5; }
}

int div ()
{
    if(d==6) return c[2]>0&&c[3]>0;
    if(d==4) return c[2]>1;
    return c[d]>0;
}

int main()
{
    f>>r>>d;
    nr=0;
    n=r;
    for(i=1;i<=r/2;i++)
    {
        n1=n;
        n2=i;
        n--;
        ordine();
        if(div()) nr+=2;
    }
    if(div() && r%2==0) nr--;
    g<<nr;
 return 0;
 f.close();
 g.close();
}