Cod sursa(job #2384534)
Utilizator | Data | 20 martie 2019 20:42:22 | |
---|---|---|---|
Problema | Zero 2 | Scor | 4 |
Compilator | cpp-64 | Status | done |
Runda | excelenta-tema2 | Marime | 0.83 kb |
#include<bits/stdc++.h>
#define ll long long
using namespace std;
ifstream f("zero2.in");
ofstream g("zero2.out");
ll n, x, nr, k;
ll desc(ll a)
{
ll maxim=-1;
if(!(a & 1))
{
while(!(a & 1))
a=a>>1;
maxim=2;
}
ll d=3;
while(d*d<=a)
{
if(a%d==0)
{
while(a%d==0)
a/=d;
if(maxim<d) maxim=d;
}
d+=2;
}
if(a>1 && maxim<a) maxim=a;
return maxim;
}
int main()
{
for(int i=1; i<=10; i++)
{
nr=0;
f>>x>>k;
ll r=desc(k);
for(int j=r; j<=x; j+=r)
{
int q=j;
while(q%r==0)
{
q/=r;
nr++;
}
}
g<<nr<<'\n';
}
return 0;
}