Cod sursa(job #3360083)
| Utilizator | Data | 8 iulie 2026 17:17:10 | |
|---|---|---|---|
| Problema | Zero 2 | Scor | 60 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva de probleme | Marime | 1.3 kb |
#include <fstream>
using namespace std;
ifstream f("zero2.in");
ofstream g("zero2.out");
int legendre(int n, int p)
{
int e = 0;
while(n)
{
n /= p;
e += n;
}
return e;
}
int main()
{
int N, B;
for(int j = 1; j <= 10; j++)
{
f >> N >> B;
long long mini = 0;
int ok = 0;
for(int i = 2; i * i <= B; i++)
{
if(B % i == 0)
{
int putere = 0;
while(B % i == 0)
{
putere++;
B /= i;
}
long long v = 0;
for(int k = 1; k <= N; k++)
v += legendre(k, i);
long long nr = v / putere;
if(ok == 0)
{
ok = 1;
mini = nr;
}
mini = min(mini, nr);
}
}
if(B > 1)
{
long long v = 0;
for(int k = 1; k <= N; k++)
v += legendre(k, B);
if(ok == 0)
{
ok = 1;
mini = v;
}
mini = min(mini, v);
}
g << mini << '\n';
}
return 0;
}
