Cod sursa(job #2091312)

Utilizator verde.cristian2005Verde Flaviu-Cristian verde.cristian2005 Data 19 decembrie 2017 15:36:33
Problema Pascal Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.84 kb
#include <fstream>
using namespace std;
ifstream in("pascal.in");
ofstream out("pascal.out");
int ver(int n,int d)
{
 int cnt=0,d1=d;
 while(d1<=n&&n!=0)
 {
  cnt+=n/d1;
  d1*=d;
 }
 return cnt;
}
int cook(int n,int d)
{
 int cnt=0;
 while(n%d==0&&n!=0)
 {
  n/=d;
  cnt++;
 }
 return cnt;
}
int main()
{
    int r,d,cinci,trei,doi,copi5,copi2,copi3,d2,d3,d5,cnt=0,i;
    in>>r>>d;
    copi5=cinci=ver(r,5);
    copi3=trei=ver(r,3);
    copi2=doi=ver(r,2);
    d2=cook(d,2);
    d3=cook(d,3);
    d5=cook(d,5);
    for(i=1;i<=r/2;i++)
    {
     copi5=copi5+cook(i,5)-cook(r-i+1,5);
     copi3=copi3+cook(i,3)-cook(r-i+1,3);
     copi2=copi2+cook(i,2)-cook(r-i+1,2);
     if(trei-copi3>=d3&&doi-copi2>=d2&&cinci-copi5>=d5)
      cnt++;
    }
    if(r%2==0)
    out<<cnt*2-1;
    else
    out<<2*cnt;
    return 0;
}