题解 | #整除问题#

整除问题

https://www.nowcoder.com/practice/8e29045de1c84d349b43fdb123ab586a

#include<bits/stdc++.h>
using namespace std;

bool isprime(int x){
    
    for(int i=2;i<x;i++){
        if(x%i==0){
            return false;
        }
    }

    return true;
}
void prime(int x,vector<int>& p){
    for(int i=2;i<=x;i++){
        
        while(x%i==0){
            x/=i;
            p[i]++;
        }
        
    }
}
void isp(int x,vector<int>& p){
    for(int i=2;i<=x;i++){
        if(isprime(i)){
            int w=i;
            while(w<=x){
              
                  
           
               int z=x/w;
                
                p[i]+=z;
                
            
              w*=i;
            }
         
        }
    }
}
int main(){
    int n,a;int k;
    while(cin>>n>>a){
        k=INT_MAX;
    vector<int> p1(1000,0);vector<int> p2(1000,0);
    isp(n,p1);prime(a,p2);
    for(int i=2;i<1000;i++){
        if(p2[i]!=0){
          k=min(k,p1[i]/p2[i]);
        }
       
    }
    if(k==INT_MAX)cout<<0<<endl;
    else
    cout<<k<<endl;
        
        
    }
    
}

全部评论

相关推荐

叁六玖:你看,最后不是让你加油,就是鼓励你,还祝福你求职顺利。
点赞 评论 收藏
分享
做个有文化的流氓:幸遇良师,幸遇好的hr
找工作中的小确幸
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务