?求救!!!70分过不去!!!
查看原帖
?求救!!!70分过不去!!!
1339620
cx2013楼主2024/8/23 15:54
#include<bits/stdc++.h>
using namespace std;
int n,m1,m2,temp,minn=2e9;
struct node{ 
    int number,cnt=0;
}m_node[105];
int idx=0;
int main(){
    cin>>n;
    cin>>m1>>m2;
    for(int i=2;i<=m2;++i){
        if(m1%i==0){
            idx++;
            m_node[idx].number=i;
            while(m1%i==0){
                m_node[idx].cnt++;
                m1/=i;
            }
            m_node[idx].cnt*=m2;
        }
    }
    while(n--){
        cin>>temp;
        bool  flag=true;
        for(int i=1;i<=idx;++i){
            if(temp%m_node[i].number!=0){
                flag=false;
            }
        }
        if(flag){
            int maxn=0;
            for(int i=1;i<=idx;++i){
                int cnt=0;
                while(temp%m_node[i].number==0){
                    cnt++;
                    temp/=m_node[i].number;
                }
                int sec=(m_node[i].cnt-1)/cnt+1;
                maxn=max(maxn,sec);
            }
            minn=min(minn,maxn);
        }
    }
    if(minn==2e9){
        cout<<-1;
    }else{
        cout<<minn;
    }
    return 0;
}
2024/8/23 15:54
加载中...