来晚 了
176963 2007-06-16 20:45:21 Accepted 2845 C++ 0.5K 0:00.00 676K
第一个其实还是比较简单的..
这个和我上次发的那个阶乘末尾几个0是一个问题...
#include<stdio.h>
int main()
{
long n,m;
long a[20];
int i,j,k,l;
while(1)
{
scanf("%ld%ld",&n,&k);
if(!n) break;
for(l=0,i=2;k!=1;)
{
if(k%i==0)
{
j=0;
while(k%i==0)
{
k/=i;
j++;
}
m=n;
a[l]=0;
while(m)
{
a[l]+=m/i;
m/=i;
}
a[l]/=j;
l++;
}
else i++;
}
for(m=a[0],i=0;i<l;i++) m=m>a[i]?a[i]:m;
printf("%ld\n",m);
}
return 0;
}
176963 2007-06-16 20:45:21 Accepted 2845 C++ 0.5K 0:00.00 676K
第一个其实还是比较简单的..
这个和我上次发的那个阶乘末尾几个0是一个问题...
#include<stdio.h>
int main()
{
long n,m;
long a[20];
int i,j,k,l;
while(1)
{
scanf("%ld%ld",&n,&k);
if(!n) break;
for(l=0,i=2;k!=1;)
{
if(k%i==0)
{
j=0;
while(k%i==0)
{
k/=i;
j++;
}
m=n;
a[l]=0;
while(m)
{
a[l]+=m/i;
m/=i;
}
a[l]/=j;
l++;
}
else i++;
}
for(m=a[0],i=0;i<l;i++) m=m>a[i]?a[i]:m;
printf("%ld\n",m);
}
return 0;
}