hdu4497 GCD and LCM

原创 2015年07月10日 17:30:49

GCD and LCM

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65535/65535 K (Java/Others)
Total Submission(s): 1460    Accepted Submission(s): 653


Problem Description
Given two positive integers G and L, could you tell me how many solutions of (x, y, z) there are, satisfying that gcd(x, y, z) = G and lcm(x, y, z) = L?
Note, gcd(x, y, z) means the greatest common divisor of x, y and z, while lcm(x, y, z) means the least common multiple of x, y and z.
Note 2, (1, 2, 3) and (1, 3, 2) are two different solutions.
 

Input
First line comes an integer T (T <= 12), telling the number of test cases.
The next T lines, each contains two positive 32-bit signed integers, G and L.
It’s guaranteed that each answer will fit in a 32-bit signed integer.
 

Output
For each test case, print one line with the number of solutions satisfying the conditions above.
 

Sample Input
2 6 72 7 33
 

Sample Output
72 0
 
  给出gcd和lcm,求出满足条件的(x,y,z)这样的三元组有多少个。
  把这些数分解因子,gcd因子个数是这些数里面拥有这个因子最少的数的因子个数,gcd因子个数是这些数里面拥有这个因子最多的数的因子个数。所以这里面先用lcm除以gcd,把除了之后得到的数分解因子,对于每个因子,假设个数是m,x,y,z里面一定有一个数的这个因子个数是m,一个数因子个数为m,剩下一个在0到n之间。因此对于这个因子,三个数的组合有(m-1)*6+6种。
#include<iostream>
#include<cstdio>
#include<string>
#include<cstring>
#include<vector>
#include<cmath>
#include<queue>
#include<stack>
#include<map>
#include<set>
#include<algorithm>
#pragma comment(linker, "/STACK:102400000,102400000")
using namespace std;
typedef long long LL;

const int MAXN=300010;
const int SIZE=4096;
const int INF=0x3f3f3f3f;

int T;
LL G,L;

int main(){
    freopen("in.txt","r",stdin);
    scanf("%d",&T);
    while(T--){
        scanf("%lld%lld",&G,&L);
        if(L%G!=0||L<G){
            printf("0\n");
            continue;
        }
        LL n=L/G;
        LL sq=sqrt(n)+1;
        int ans=1;
        for(LL i=2;i<=n&&i<=sq;i++){
            int m=0;
            while(n%i==0){
                n/=i;
                m++;
            }
            if(m>0) ans*=(m-1)*6+6;
        }
        if(n>1) ans*=6;
        printf("%d\n",ans);
    }
    return 0;
}



2015弱校连萌寒假套题一 题解

比赛地址 弱校连萌寒假套题一 A. The Big Dance 题意: 有n头牛,初始情况下都在一起,编号1~n。每次将一群牛按照编号均等分为前后两部分,后面部分的牛不能多于前面部分的...
  • skywalkert
  • skywalkert
  • 2015年03月02日 18:33
  • 1047

有关GCD和LCM的公式

关于最大公约数和最小公倍数的概念定义这里不再赘述。 一般地,数和数的最大公约数记为,其最小公倍数则记为。 公式1: &space;1)" target="_blank">&space;1)" ti...
  • OpenSpirit
  • OpenSpirit
  • 2015年05月06日 02:26
  • 1798

老逗的gcd 莫比乌斯反演

这个题一看就是莫比乌斯反演,怎么处理无平方因子数呢?由莫比乌斯函数的性质,不难写出: 简单反演得: 那么令 重点在于处理的这个函数的值,用传统筛的话可以加一个小优化就是底数和倍数都只枚举...
  • liuguangzhe1999
  • liuguangzhe1999
  • 2016年04月14日 09:07
  • 539

洲阁筛法学习小计

张俊的课件如是说:   一个对单个n有效的方法:      f[n]表示n以内的素数个数      c[i]表示第i个素数      g[n][m]表示n以内不被c[1..m]整除的数的...
  • samjia2000
  • samjia2000
  • 2017年01月14日 17:32
  • 1716

Hdu4497 GCD and LCM 素数筛法+分解质因数

Problem Description Given two positive integers G and L, could you tell me how many solutions of (x...
  • Megumin
  • Megumin
  • 2016年07月13日 13:05
  • 95

hdu4497——GCD and LCM(数论&容斥原理or排列组合)

GCD and LCM Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65535/65535 K (Java/Others) T...
  • qq_20200047
  • qq_20200047
  • 2017年04月22日 22:10
  • 164

数论(一)——素数,GCD,LCM

这是一个数论系列:) 一、素数 ×费马小定理 Theorem: 设 p 是一个素数,a 是一个整数且不是 p 的倍数,那么 很遗憾,费马小定理的逆定理是不成立的。对 a = 2...
  • Joker0429
  • Joker0429
  • 2013年01月11日 23:05
  • 418

LCM模组的简介与质量管理(连载四)

FROM:http://www.ci800.com/news/htmlnew/2012-4/33589.htm 一、手机行业LCM模组知识介绍 1.LCD显示模组简介  LCM(LC...
  • chenzhen1080
  • chenzhen1080
  • 2017年01月24日 19:44
  • 1754

最小公倍数(LCM)与最大公约数(GCD)

最小公倍数(Lowest Common Multiple),两个或多个整数的公倍数里最小的那一个叫做它们的最小公倍数。   最大公约数(Greatest Common Divisor),也称最大公...
  • Feynman1999
  • Feynman1999
  • 2017年02月02日 22:34
  • 179

MTK lcm调试总结及解决思路

一、常见lcm问题 LCD会注意到一下问题: 1.gamma是否超标。 2.刷新率是否合适。 3.flicker现象是否严重或能否轻易察觉。 4.ESD是否合格。 5.背光调节是否存在问题...
  • mahao1107
  • mahao1107
  • 2017年07月11日 17:59
  • 739
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:hdu4497 GCD and LCM
举报原因:
原因补充:

(最多只允许输入30个字)