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, ...
随机推荐
- C++走向远洋——50(Time类中的运算符重载、一目,二目比较运算符、二目赋值运算符、二目加减法运算符)
*/ * Copyright (c) 2016,烟台大学计算机与控制工程学院 * All rights reserved. * 文件名:text.cpp * 作者:常轩 * 微信公众号:Worldhe ...
- 《前端面试加分项目》系列 企业级Vue瀑布流
本文 GitHub github.com/ponkans/F2E 已收录,有一线大厂面试点思维导图,也整理了很多我的文档,欢迎Star和完善,大家面试可以参照考点复习.文末有福利~~ 前言 接水怪又来 ...
- Node REPL环境
1.概述 REPL全称Read,Eval,Print,Loop,简单理解为接收用户输入,执行用户输入,打印执行结果并输出到控制台,进行下一次轮回,可以进行一些简单的测试,类似于浏览器的控制台. 命令行 ...
- pyteeseract使用报错Error: one input ui-file must be specified解决
Python在图像识别有天然的优势,今天使用pytesseract模块时遇到一个报错:“Error: one input ui-file must be specified”. 环境:windows ...
- 线程状态,BLOCKED和WAITING有什么区别
线程可以通过notify,join,LockSupport.park方式进入wating状态,进入wating状态的线程等待唤醒(notify或notifyAll)才有机会获取cpu的时间片段来继续执 ...
- py基础之数据类型及基本语法
'''python中有五种数据类型,分别是整数.浮点数.字符串.布尔值.空值'''a = 1b = 2.0c = 'hello,world'print (a,b,c)#a是整数,b是浮点数,c是字符串 ...
- canvas初尝试
最近学习了canvas,就拿它做了这么个小东西,感觉已经爱上canvas了.上代码 /* * @auhor : 开发部-前端组-李鑫超 * @property { tableData : {Array ...
- 基于Unix Socket的可靠Node.js HTTP代理实现(支持WebSocket协议)
实现代理服务,最常见的便是代理服务器代理相应的协议体请求源站,并将响应从源站转发给客户端.而在本文的场景中,代理服务及源服务采用相同技术栈(Node.js),源服务是由代理服务fork出的业务服务(如 ...
- 第八章、小节二vuex
a.用vuex首先先安装vuex npm install vuex --save b.在src目录下创建store文件夹,在store中创建index.js存放各个状态 c.在一个模块化的打包系统中, ...
- GPS轨迹发生模拟器介绍
GPS轨迹发生模拟器介绍 GPS信号模拟器能够模拟卫星信号运动轨迹,模拟GPS卫星导航系统的导航信号.GPS轨迹发生器可以模拟导航系统确定位置点如日期.时间.经度.纬度.海拔信息.速度等.GPS轨迹模 ...