要用longlong吗

P3927 SAC E#1 - 一道中档题 Factorial

知道了 第10,14,18WA了 求解释 **help!!!** ```cpp #include<iostream> #include<cstdio> #include<cmath> #define ll long long using namespace std; long long n,k,a[10004],b[10004],prime[100000]; ll ans=1e17; ll g(ll m,ll p){ ll sum=0; for(ll i=p;i<=m;i*=p) sum+=m/i; return sum; } ll g1(ll m,ll p){ ll sum=0; while(m){ if(m%p==0) m/=p,sum++; else break; } return sum; } int main(){ scanf("%lld%lld",&n,&k); prime[0]=2,prime[1]=3; ll m=1; for(ll i=5;i<=k;i+=2){ bool t=0; for(ll j=1;prime[j]<=sqrt(i) ;j++){ if(i%prime[j]==0){ t=1; break; } } if(!t) prime[++m]=i; } ll l=0; for(ll i=0;i<=m;i++) if(k%prime[i]==0) { a[++l]=prime[i]; b[l]=g1(k,prime[i]); } for(ll i=1;i<=l;i++) { ll k=g(n,a[i])/b[i]; ans=min(ans,k); } if(ans==1e17) cout<<"0"; else printf("%lld",ans); } ```
by S1K2N3 @ 2017-10-19 23:23:25


|