社区讨论
为什么是20分?
P1069[NOIP 2009 普及组] 细胞分裂参与者 5已保存回复 4
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 4 条
- 当前快照
- 1 份
- 快照标识符
- @mi7po3w3
- 此快照首次捕获于
- 2025/11/21 01:34 4 个月前
- 此快照最后确认于
- 2025/11/21 01:34 4 个月前
CPP
#include<iostream>
#include <algorithm>
#include <cmath>
#include <iomanip>
using namespace std;
long long n,m1,m2;
long long s,minn=0x7fffffff,maxx;
long long p,cnt1,cnt2,sum;
int main()
{
cin>>n>>m1>>m2;
if(m1==1)
{
cout<<0;
return 0;
}
for(int i=0;i<n;i++)
{
maxx=-1;
cin>>s;
p=m1;
for(long long j=2;j<=200;j++)
{
if(s%j==0 && p%j!=0)
{
while(s%j==0)
{
s/=j;
}
}
else if(s%j!=0 && p%j==0)
{
maxx=-1;
break;
}
else if(s%j==0 && p%j==0)
{
cnt1=0;
while(s%j==0)
{
s/=j,cnt1++;
}
cnt2=0;
while(p%j==0)
{
p/=j,cnt2++;
}
}
}
if(maxx!=-1) minn=min(minn,maxx);
}
if(minn==0x7fffffff) cout<<-1;
else cout<<minn;
return 0;
}
回复
共 4 条回复,欢迎继续交流。
正在加载回复...