Pagini recente » Cod sursa (job #2114265) | Cod sursa (job #2238718) | Cod sursa (job #3220748) | Cod sursa (job #1785949) | Cod sursa (job #2089924)
#include <iostream>
#include <fstream>
using namespace std;
ifstream in("pascal.in");
ofstream out("pascal.out");
long long r,d,cnt;
long long legendre(long long n, long long p)
{
long long s=0;
long long power = p;
bool is4=false;
if(p==0)
return 0;
if(p==4)
{
is4=true;
p=2;
}
while(n/power>0)
{
s+=n/power;
power*=p;
}
if(is4 && power<4)
return 0;
return s;
}
int main()
{
in>>r>>d;
if(d==2 || d==3 || d==5 || d==4)
{
for(int i = 1; i<=r/2; i++)
{
if(legendre(r,d)-legendre(r-i,d)-legendre(i,d)>0)
{
if(i==r/2)
{
if(r%2==0)
cnt++;
else
cnt+=2;
}
else
cnt+=2;
}
}
}
else
{
for(int i = 1; i<=r/2; i++)
{
if(legendre(r,2)-legendre(r-i,2)-legendre(i,2)>0 && legendre(r,3)-legendre(r-i,3)-legendre(i,3)>0)
{
if(i==r/2)
{
if(r%2==0)
cnt++;
else
cnt+=2;
}
else
cnt+=2;
}
}
}
out<<cnt;
return 0;
}