zoukankan      html  css  js  c++  java
  • hdu-4497 GCD and LCM

    题目链接:

    http://acm.hdu.edu.cn/showproblem.php?pid=4497

    题目大意:

    给出三个数的gcd和lcm,求出这三个数有多少种可能性

    解题思路:

    设lcm / gcd = (p1^r1)*(p2^r2)*(p3^r3)…(pm^rm)

    设三个数为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)

    对于某个r,i、j、k里面一定有一个是r,并且一定有一个是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 }
  • 相关阅读:
    Spring IoC
    Java软件安装
    Struts(一)
    Struts(二)
    Hibernate(六)
    Hibernate(五)
    Hibernate(二)
    Hibernate(四)
    Hibernate(三)
    Hibernate(一)
  • 原文地址:https://www.cnblogs.com/fzl194/p/9032267.html
Copyright © 2011-2022 走看看