两个整数n(2<=n<=1000),a(2<=a<=1000)
一个整数.
链接:https://www.nowcoder.com/questionTerminal/8e29045de1c84d349b43fdb123ab586a 来源:牛客网 #include <bits/stdc++.h> using namespace std; bool isp[1000]; void isprime()//筛选求素数 { for(int i=2;i<=sqrt(1000);i++) if(isp[i]==0)for(int j=i;i*j<=1000;j++) isp[i*j]=1; } int main() { int n,a,i,j,k=99999999; int e[1000]={0},ea[1000]={0}; cin>>n>>a; isprime(); for(i=2;i<=n;i++)//唯一分解i { int temp=i; for(j=2;j<=sqrt(i);j++) { if(isp[j]==1)continue; while(temp%j==0) { e[j]++; temp=temp/j; } } if(temp!=0)e[temp]++; } for(i=2;i<=a;i++) { if(isp[i]==1)continue; while(a%i==0) { ea[i]++; a=a/i; } if(ea[i]!=0)k=min(k,e[i]/ea[i]); } cout<<k<<endl; }
原文:https://www.cnblogs.com/JAYPARK/p/10348931.html