lanqiao 19711 宝石组合

This commit is contained in:
2025-04-08 09:22:21 +08:00
parent 38b5333855
commit c2794dbd98

View File

@@ -1,10 +1,20 @@
// lanqiao 19711 宝石组合
#include<bits/stdc++.h>
using namespace std;
/*
解析:
唯一分解定理:
任何一个大于1的自然数N如果N不是质数那么N可以唯一分解成有限个质数的乘积
N1=p1^a1*p2^a2*...*pn^an
N2=p1^b1*p2^b2*...*pn^bn
则gcd(N1, N2)=p1^min(a1, b1)*p2^min(a2, b2)*... *pn^min(an, bn)
则lcm(N1, N2)=p1^max(a1, b1)*p2^max(a2, b2)*...*pn^max(an, bn)
假设Ha,HbHc相同质因子的幂次分别为x,y,z则题目中的表达式等价于
x+y+z+max(x,y,z)-max(x,y)-max(x,z)-max(y,z)
*/
const int N = 1e5 + 10;
int a[N];
vector<int> fac[N], s[N];
int main() {
for(int i = 1; i <= 1e5; i++){
for(int j = i; j <= 1e5; j += i){