2 条题解
-
0
P1029 [NOIP 2001 普及组] 最大公约数和最小公倍数问题——题解
解题思路
若 不是 的倍数,答案为 0。否则令 ,则要求 且 。为了互质, 的每一种“完整质因子幂”必须整体分配给 或 。若 有 种不同质因子,每种有两种去向,答案为 。
正确性说明
将共同因子 提出后,最大公约数为 1 要求 不共享质因子;最小公倍数条件又要求它们乘积为 。因此每种质因子的全部幂次只能完整放在其中一边,且每种有两个独立选择。
复杂度分析
分解 的时间复杂度 ,空间 。
C++17 参考代码
#include <bits/stdc++.h> using namespace std; int main(){ long long x,y;cin>>x>>y; if(y%x){cout<<0<<'\n';return 0;} long long k=y/x;int cnt=0; for(long long p=2;p*p<=k;p++) if(k%p==0){cnt++;while(k%p==0)k/=p;} if(k>1)cnt++; cout<<(1LL<<cnt)<<'\n';return 0; }
- 1
信息
- ID
- 4889
- 时间
- 2000ms
- 内存
- 256MiB
- 难度
- 10
- 标签
- 递交数
- 1
- 已通过
- 1
- 上传者
粤公网安备44195502000195号