Pagini recente » Cod sursa (job #1249916) | Cod sursa (job #2816168) | Cod sursa (job #1581851) | Cod sursa (job #2878745) | Cod sursa (job #1124808)
#include <fstream>
using namespace std;
ifstream f("zero2.in");
ofstream g("zero2.out");
struct punct{
int d;
int e;
}v[100001];
int i,t,k,b,n,u,nr,p;
long long s,Min;
int main()
{for(t=1;t<=1;t++){
f>>n>>b;
Min=1ll*1<<60;
nr=0;
for(i=2;i*i<=b;i++){
if(b%i==0){
nr++;
v[nr].d=i;u=0;
while(b%i==0){
b=b/i;
u++;}
v[nr].e=u;}
}
if(b!=1){
nr++;
v[nr].d=b;
v[nr].e=1;}
for(i=1;i<=nr;i++){
p=v[i].d;
s=0;
while(p<=n){
k=n/p;
s=s+1ll*(k-1)*(k)/2*p + 1ll*(k)*(n-(k)*p+1);
p=p*v[i].d;}
if(s/v[i].e<Min)
Min=s/v[i].e;}
g<<Min<<'\n';}
return 0;
}