题目 http://ac.jobdu.com/problem.php?pid=1104
#include<stdio.h>
int min(int a,int b){
if(a<b)
return a;
return b;
}
int prime(int k,int n){
int sum=0,ii;
for(int i=k;i<=n;i++){
ii=i;
while(ii%k==0){
sum++;
ii/=k;
}
}
return sum;
}
int main(){
int n,a;
while(~scanf("%d%d",&n,&a)){
int i=2,sum=0,mm=1000,aa=a;
while(a>=1&&i<=aa){
if(a%i==0){
sum++;
a/=i;
}
else{
if(sum!=0){
//cout<<i<<" "<<sum<<" "<<prime(i,n)<<endl;
mm=min(mm,prime(i,n)/sum);
}
sum=0;
i++;
}
}
printf("%d\n",mm);
}
return 0;
}
/**************************************************************
Problem: 1104
Language: C
Result: Accepted
Time:10 ms
Memory:912 kb
****************************************************************/