社区讨论
不是取GCD嘛,为什么题解直接最小值能过,我取GCD不能过
P8469[Aya Round 1 D] 文文的数学游戏参与者 3已保存回复 5
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 5 条
- 当前快照
- 1 份
- 快照标识符
- @mhz4ci7l
- 此快照首次捕获于
- 2025/11/15 01:15 4 个月前
- 此快照最后确认于
- 2025/11/16 13:52 4 个月前
我的代码
CPP#include <iostream>
using namespace std;
long long a[100005];
const long long mod = 1e9 + 7;
long long gcd(long long a, long long b)
{
while (b)
{
int r = a;
a = b;
b = r % b;
}
return a;
}
int main()
{
int n;
cin >> n;
cin >> a[1];
long long num = a[1];
for (int i = 2;i <= n;i++)
{
cin >> a[i];
num = gcd(num, a[i]);
}
long long ans = 1;
for (int i = 1;i <= n;i++)
{
ans = ans * (a[i] / num);
ans %= mod;
}
cout << num << " " << ans << endl;
return 0;
}
某题解代码
CPP#include <iostream>
using namespace std;
int a[100050],n,mgcd=1<<30;
const int mod=1e9+7;
int main()
{
cin >> n;
for (int i=1;i<=n;i++)
{
cin >> a[i];
mgcd=min(mgcd,a[i]);
}
long long ans=1;
for (int i=1;i<=n;i++)
ans=(long long)ans*(a[i]/mgcd)%mod;
cout << mgcd << " " << ans << endl;
return 0;
}
CPP输入:
3
6 10 15
CPP我的输出:
1 900
CPP题解输出:
6 2
求大犇解惑
orz
回复
共 5 条回复,欢迎继续交流。
正在加载回复...