hdu-4497 GCD and LCM
生活随笔
收集整理的這篇文章主要介紹了
hdu-4497 GCD and LCM
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
題目鏈接:
http://acm.hdu.edu.cn/showproblem.php?pid=4497
題目大意:
給出三個(gè)數(shù)的gcd和lcm,求出這三個(gè)數(shù)有多少種可能性
解題思路:
設(shè)lcm / gcd =?(p1^r1)*(p2^r2)*(p3^r3)…(pm^rm)
設(shè)三個(gè)數(shù)為x, y, z;
有:
x=(p1^i1)*(p2^i2)*(p3^i3)…(pm^im)
y=(p1^j1)*(p2^j2)*(p3^j3)…(pm^jm)
z=(p1^k1)*(p2^k2)*(p3^k3)…(pm^km)
對(duì)于某個(gè)r,i、j、k里面一定有一個(gè)是r,并且一定有一個(gè)是0,所以i,j,k有一下3種情況:
r 0 0 ,有C(3,1)種
r 0 r ,有C(3,1)種
r 0 1~r-1 ,有(r-1)*A(3,3)種
所以一共是6*r種。
1 #include<bits/stdc++.h> 2 using namespace std; 3 typedef long long ll; 4 ll n, m; 5 6 int main() 7 { 8 int T; 9 cin >> T; 10 while(T--) 11 { 12 cin >> m >> n; 13 if(n % m) 14 { 15 cout<<"0"<<endl; 16 continue; 17 } 18 n /= m; 19 ll ans = 1; 20 for(ll i = 2; i * i <= n; i++) 21 { 22 if(n % i == 0) 23 { 24 int cnt = 0; 25 while(n % i == 0) 26 { 27 cnt++; 28 n /= i; 29 } 30 ans *= 6; 31 ans *= cnt; 32 } 33 } 34 if(n != 1) 35 ans *= 6; 36 cout<<ans<<endl; 37 } 38 return 0; 39 }?
轉(zhuǎn)載于:https://www.cnblogs.com/fzl194/p/9032267.html
總結(jié)
以上是生活随笔為你收集整理的hdu-4497 GCD and LCM的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python 笔记 之 sqlalche
- 下一篇: codevs1217 借教室 题解