HDU 4497 GCD and LCM 素因子分解+ gcd 和 lcm
题意:
给两个数,lll 和 ggg,为x , y , z,的最小公倍数和最大公约数,求出x , y , z 的值有多少种可能性
思路:
将x , y , z进行素因子分解
| 素因子的幂次 | |
|---|---|
| x | a1 a2 a3 a4 |
| y | b1 b2 b3 b4 |
| z | c1 c2 c3 c4 |
| gcd | min(a1,b1,c1) min(a2,b2,c3)… |
| lcm | max(a1,b1,c1) max(a2,b2,c3)… |
第一组样例:
6=21 * 31
72= 23 * 32
最大公约数和最小公倍数约分得 12=22 * 31(是否约分并不重要,幂次相减就可以了),设最大公约数为1,最小公倍数为12
设 x为1 ,y=12,也就是
| 素因子的幂次 | |
|---|---|
| x | a1=0, a2 =0 |
| y | b1 = 2 , b2=1 |
| z | c1=0~2 , c2= 0~1 |
将素因子按列对齐,当出现两个幂次相等时,排列组合为3,当三个幂次都不相等时,排列组合为6,
上述例子c1的范围是0~2,当c1=0和c1=2时合并为1个6,所以是2 * 6,c2=1和c2=0合并为一个6,所以是1 * 6,根据两个素因子相乘,得出2* 6 * 1*6。
#include<algorithm>
#include<stdio.h>
#include<map>
#include<vector>
using namespace std;
int main()
{
int t,n,m,g,l,acc;
scanf("%d",&t);
while(t--)
{
struct
{
vector<int>e;
map<int,int>mp;
} gcd,lcm;
scanf("%d%d",&g,&l);
if(l%g)//一组数的最大公约数和最小公倍数肯定能整除
{
printf("0\n");
continue;
}
acc=l/g;
int ans=1;
for(int i=2;; i++)
{
if(acc%i==0)
{
int t=0;
while(acc%i==0)
{
acc=acc/i;
t++;
}
ans=ans*6*t;
}
if(acc==1)
break;
}
printf("%d\n",ans);
}
return 0;
}
HDU 4497 GCD and LCM 素因子分解+ gcd 和 lcm的更多相关文章
- 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(分解质因子+排列组合)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4497 题意:已知GCD(x, y, z) = G,LCM(x, y, z) = L.告诉你G.L,求满 ...
- GCD and LCM HDU 4497 数论
GCD and LCM HDU 4497 数论 题意 给你三个数x,y,z的最大公约数G和最小公倍数L,问你三个数字一共有几种可能.注意123和321算两种情况. 解题思路 L代表LCM,G代表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 4497 GCD and LCM (数论)
题意:三个数x, y, z. 给出最大公倍数g和最小公约数l.求满足条件的x,y,z有多少组. 题解:设n=g/l n=p1^n1*p2^n2...pn^nk (分解质因数 那么x = p1^x1 * ...
- 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(排列组合+LCM和GCD)
GCD and LCM Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65535/65535 K (Java/Others)Total ...
- GCD and LCM HDU - 4497(质因数分解)
Problem Description Given two positive integers G and L, could you tell me how many solutions of (x, ...
随机推荐
- Neural Turing Machine - 神经图灵机
Neural Turing Machine - 神经图灵机 论文原文地址: http://arxiv.org/pdf/1410.5401.pdf 一般的神经网络不具有记忆功能,输出的结果只基于当前的输 ...
- CSV文件注入漏洞简析
“对于网络安全来说,一切的外部输入均是不可信的”.但是CSV文件注入漏洞确时常被疏忽,究其原因,可能是因为我们脑海里的第一印象是把CSV文件当作了普通的文本文件,未能引起警惕. 一.漏洞定义 攻击者通 ...
- 46-Python深浅拷贝
目录 一.引言 1.1 可变或不可变 二.拷贝 三.浅拷贝 深拷贝 一.引言 在python中,对象赋值实际上是对象的引用.当创建一个对象,然后把它赋给另一个变量的时候,python并没有拷贝这个对象 ...
- 【echarts3】 折线图我踩过的那些坑 (tooltip 设置,line 单个点/散点不显示问题)
echarts 折线图小技巧 echarts 折线图功能丰富且官方文档详细易懂,上手比较容易,这篇文章将分享一些项目中踩过的坑,示例主要以多条曲线为主,对大家完成一些 曲线.tooltip 和 mar ...
- 数据加密标准(DES)详解
1 简介 1.1 历史 DES(Data Encryption Standard)是由IBM公司在1974年提出的加密算法,在1977年被NIST定位数据加密标准.随后的很多年里,DES都是最流行的对 ...
- docker 学习路线
docker 学习路线 参考资料 知乎 docker 的学习路线 Docker - 从入门到实践 Docker 核心技术与实现原理 Docker 入门 <Kubernetes in Action ...
- 关于javascript 的reduce方法
作为一个前端菜鸟,觉得资料比较好,特地分享一下~~ reduce() 方法接收一个函数作为累加器(accumulator),数组中的每个值(从左到右)开始缩减,最终为一个值. 你一定也和我一样看的有点 ...
- mysql的锁与事务
1. MySQL中的事物 1.InnoDB事务原理 1. 事务(Transaction)是数据库区别于文件系统的重要特性之一,事务会把数据库从一种一致性状态转换为另一种一致性状态. 2. 在数据库提交 ...
- PHP变量存储结构
首先声明,我并没有去读PHP的源码,只是对于PHP的有时候诡异的表现感兴趣,找了一下开发人员laruence的博客结合PHP提供的函数debug_zval_dump刺探得到了本博客所阐述的工作机理.如 ...
- 简说Python之图形初体验
针对孩子,最容易引起小孩的感官认知的就是图形.因此,系统运用图形编程,可以更好地让孩子喜欢上编程. turtle叫做,Turtle graphics.是python第三方的画图模块工具.可以通过imp ...