HDU 4497 GCD and LCM(分解质因子+排列组合)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4497
题意:已知GCD(x, y, z) = G,LCM(x, y, z) = L。告诉你G、L,求满足要求的(x, y, z)有多少组,并且要考虑顺序。
思路:如果L%G != 0显然不存在这样的(x, y, z),相反肯定存在。具体做法就是将L/G分解质因子,得到:L/G = P1^t1 * P2^t2 * ... * Pk^tk,我们来考虑任意一个因子Pi^ti,此时(x/G, y/G, z/G) = (x0, y0,z0)将x0,y0,z0分别分解质因子,得到对应位为Pi^t1, Pi^t2,Pi^t3,为了满足要求,(t1, t2, t3)中一定有一个为0(三个数互质),(t1, t2, t3)中一定有一个为ti且剩下的一个小于等于ti(三个数的最小公倍数为L/G)。min(t1, t2, t3) = 0, max(t1, t2, t3) = ti,所有情况就为6*ti(排列组合或者容斥原理),最后的答案就是(6*t1) * (6*t2) * ... * (6*tk)。
code:
#include <cstdio> int main()
{
int nCase;
scanf("%d", &nCase);
while (nCase--) {
int L, G;
scanf("%d %d", &G, &L);
if (L % G) {
printf("0\n");
continue;
}
L /= G;
int ans = ;
for (int i = ; i * i <= L; ++i) {
if (L % i == ) {
int t = ;
while (L % i == ) {
L /= i;
++t;
}
ans *= ( * t);
}
}
if (L != ) ans *= ;
printf("%d\n", ans);
}
return ;
}
HDU 4497 GCD and LCM(分解质因子+排列组合)的更多相关文章
- hdu 4497 GCD and LCM 质因素分解+排列组合or容斥原理
//昨天把一个i写成1了 然后挂了一下午 首先进行质因数分解g=a1^b1+a2^b2...... l=a1^b1'+a2^b2'.......,然后判断两种不可行情况:1,g的分解式中有l的分解式中 ...
- HDU 4497 GCD and LCM (合数分解)
GCD and LCM Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65535/65535 K (Java/Others)Total ...
- hdu 4497 GCD and LCM 数学
GCD and LCM Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://acm.hdu.edu.cn/showproblem.php?pid=4 ...
- hdu 4497 GCD and LCM(2013 ACM-ICPC吉林通化全国邀请赛——题目重现)
质分解 + 简单计数.当时去比赛的时候太年轻了...这道题都没敢想.现在回过头来做了一下,发现挺简单的,当时没做这道题真是挺遗憾的.这道题就是把lcm / gcd 质分解,统计每个质因子的个数,然后 ...
- HDU 4497 GCD and LCM(数论+容斥原理)
GCD and LCM Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65535/65535 K (Java/Others)Total ...
- HDU 4135 Co-prime (容斥+分解质因子)
<题目链接> 题目大意: 给定区间[A,B](1 <= A <= B <= 10 15)和N(1 <=N <= 10 9),求出该区间中与N互质的数的个数. ...
- 数论——算数基本定理 - HDU 4497 GCD and LCM
GCD and LCM Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65535/65535 K (Java/Others)Total ...
- hdu 4497 GCD and LCM (非原创)
GCD and LCM Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65535/65535 K (Java/Others)Total ...
- HDU 4497 GCD and LCM 素因子分解+ gcd 和 lcm
题意: 给两个数,lll 和 ggg,为x , y , z,的最小公倍数和最大公约数,求出x , y , z 的值有多少种可能性 思路: 将x , y , z进行素因子分解 素因子的幂次 x a1 a ...
随机推荐
- 如果有三个Bool型变量,请写出一程序得知其中有2个以上变量的值是true
下面这篇文章是从StackOverflow来的.LZ面试的时候遇到了一道面试题:“如果有三个Bool型变量,请写出一程序得知其中有2个以上变量的值是true”,于是LZ做了下面的这样的程序: bool ...
- RedHat Enterprise Linux 6.3 安装Oracle Database 11g
按照以下文章正确将oracle安装在linux上 http://yiyiboy2010.iteye.com/blog/1670795 http://mirrors.163.com/centos/6.5 ...
- uva 215 hdu 1455 uvalive5522 poj 1011 sticks
//这题又折腾了两天 心好累 //poj.hdu数据极弱,找虐请上uvalive 题意:给出n个数,将其分为任意份,每份里的数字和为同一个值.求每份里数字和可能的最小值. 解法:dfs+剪枝 1.按降 ...
- gdb的user-define command
搜索: user-defined例子. # save this file in ~/.gdb or some where easy to find. # then in ~/.gdbinit add ...
- #include <array>
array是静态数组,在栈上,不可以变长 vector比array更常用 不需要变长,容量较小,用array 需要变长,容量较大,用vector 1 array 1 array新数组 //std::a ...
- S3C6410嵌入式应用平台构建(四)——linux-3.14.4移植到OK6410-(初步启动)
这次,还是把基本的基于我目前最新的Linux源码进行移植到OK6410吧,同时也写下我移植过程中遇到的问题及解决方法,不过有些方法是借鉴网上的,有些是自己加的,会有一些小bug. 一.基本工作 1. ...
- iOS App集成Apple Pay教程(附示例代码)
苹果在本周一发布了iOS 8.1版本,并正式开放了Apple Pay支付系统.Apple Pay是一个基于NFC的支付系统,不久将被数以万计的线下零售商店予以支持.即便这项科技并不是彻底的突破性进展, ...
- node中的get请求和post请求的不同操作【node学习第五篇】
获取get的请求内容 /** * Created by Administrator on 2016/8/5. */ var http = require("http"); var ...
- 3n+1
#include<iostream> using namespace std; int main() { int n; while(cin>>n) { int count=0; ...
- PHPEXCEL导入小技巧
在导入excel的时候,单元格格式和公式经常让导入不顺畅.注意phpexcel文档说明,基本上就可以很顺利的导入. 1.忽略单元格格格式,并导入xls.xlsx两种格式 $objReader = PH ...