30分RE,玄关
查看原帖
30分RE,玄关
1239074
woshiSBSBSBSB楼主2024/8/1 16:43
#include<bits/stdc++.h>
using namespace std;
const int N=30005;
int n,m1,m2,t;
int s[N],p[N],cnt[N];
int main(){
	std::cin>>n>>m1>>m2;
	for(int i=1;i<=n;i++){
		std::cin>>s[i]; 
	}
	for(int i=2;i<=m1;i++){
		if(m1%i) continue;
		t++;
		p[t]=i;
		while(m1%i==0){
			cnt[t]++,m1/=i;
		}
		cnt[t]*=m2;
	}
	int ans=-1;
	for(int i=1;i<=n;i++){
		bool flag=false;
		for(int j=1;j<=t;j++){
			if(s[i]%p[j]) flag=true;
		}
		if(flag) continue;
		int tmp=0;
		for(int j=1;j<=t;j++){
			int c=0;
			while(s[i]%p[i]==0){
				c++,s[i]/=p[j];
			}
			tmp=std::max(tmp,(cnt[j]-1)/c+1);
		}
		if(ans=-1) ans=tmp;
		else ans=std::min(ans,tmp);
	}
	std::cout<<ans<<endl;
	return 0;
} 
2024/8/1 16:43
加载中...