由于要求 lcm,并且代码用了 unsigned long long,所以我们就要尽可能让这几个数互质并且这几个数的乘起来大于 。首先的想法是构造质数。我们构造 ,这样值达到了 ,远远不够。然后我们发现为了让他们互质,没必要全构造质数。于是我们贪心从大到小选,如果一个数和之前选的数互质,就加入这个数。
#include<bits/stdc++.h>
using namespace std;
vector<int>g;
int main(){
for(int i=100;i>=1;i--){
bool flag=1;
for(auto j:g)if(__gcd(i,j)>1)flag=0;
if(flag){
g.push_back(i);
cout<<i<<',';
if(g.size()>=10)return 0;
}
}
}
这样构造的数是 ,乘起来是 ,就差一点了。
然后我们发现 同时用了 和 的因子,非常不牛。然后我们可以把 拆成 和 ,得到这样的构造:,乘起来是 ,于是我们就可以通过这题了。
暂无评论