HDU4497——GCD and LCM
这个题目挺不错的,看到是通化邀请赛的题目,是一个很综合的数论题目。
是这样的,给你三个数的GCD和LCM,现在要你求出这三个数有多少种可能的情况。
对于是否存在这个问题,直接看 LCM%GCD是否为0,如果不为0的话,就没有满足条件的数哦,反之一定有。
接下来问题等价于求三个数GCD为1,LCM为LCM/GCD的种类数了。
设这个商为X。 首先我们可以把X因数分解成X=(p1*x1)*(p2*x2)*……*(pn*xn);
单独拿出一个素数进行讨论,如果要设ABC分别为满足情况的三个数,那么Xa1,Xa2,Xa3中间必定有一个数为0,否则GCD就不为1了,同时必定有一个最大的为x1
这样我们可以得出三大种类可能的情况,分别问(x1,0,0 ),(x1,x1,0)和(x1,(1-x1-1)之间,0)
这三个可能的情况分别为3,3,6* (x1-1),注意第二和第三种情况不能合并,想想为什么?因为相同的元素的个数不同,排列也不同。
这样我们就知道对于单个分解出来的因子对于种类数的贡献值为6*xi,由于每个因子之间是互不影响的,所以用的是乘法原理。
其他的就没什么了,可以迅速A掉。
另外说明一下:本题的数据太水了,理论上说我这种求质因子的方法是会超时的。想想为什么?
#include <cstdio>
using namespace std; void out(int x)
{
int ans=,tep;
for (int i=; i<=x; i++)
{
if (x%i>) continue;
tep=;
while (x%i==) tep++,x/=i;
ans*=*tep;
}
printf("%d\n",ans);
} int main()
{
int t,G,L;
scanf("%d",&t);
while (t--)
{
scanf("%d%d",&G,&L);
if (!(L%G)) out(L/G); else printf("0\n");
}
return ;
}
HDU4497——GCD and LCM的更多相关文章
- HDU4497 GCD and LCM(数论,质因子分解)
HDU4497 GCD and LCM 如果 \(G \% L != 0\) ,那么输出 \(0\) . 否则我们有 \(L/G=(p_1^{r_1})\cdot(p_2^{r_2})\cdot(p_ ...
- hdu4497 GCD and LCM
GCD and LCM Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65535/65535 K (Java/Others) Total S ...
- hdu4497 GCD and LCM ——素数分解+计数
link:http://acm.hdu.edu.cn/showproblem.php?pid=4497 如果G%L != 0,说明一定无解. 把K = G / L质数分解,G / L = p1^t1 ...
- HDOJ 4497 GCD and LCM
组合数学 GCD and LCM Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65535/65535 K (Java/Others) ...
- 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 ...
- GCD 与 LCM UVA - 11388
题目链接: https://cn.vjudge.net/problem/23709/origin 本题其实有坑 数据大小太大, 2的32次方,故而一定是取巧的算法,暴力不可能过的 思路是最大公因数的倍 ...
- 简单数论总结1——gcd与lcm
并不重要的前言 最近学习了一些数论知识,但是自己都不懂自己到底学了些什么qwq,在这里把知识一并总结起来. 也不是很难的gcd和lcm 显而易见的结论: 为什么呢? 根据唯一分解定理: a和b都可被分 ...
- poj 2429 GCD & LCM Inverse 【java】+【数学】
GCD & LCM Inverse Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 9928 Accepted: ...
- HDU 4497 GCD and LCM (合数分解)
GCD and LCM Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65535/65535 K (Java/Others)Total ...
随机推荐
- 【转载】Alpha混合物体的深度排序
原文:Alpha混合物体的深度排序 先说个题外话, 本来我想解答一下最近Creators Club论坛上经常出现的一个问题, 意外的是在网上竟然找不到什么全面的答案.. 这是个有着复杂答案的简单问题: ...
- underscore.js 分析 第三天
// Create a safe reference to the Underscore object for use below. // 为Underscore对象创建一个安全的引用 // _为一个 ...
- python 内置模块(os)
1.OS os.getcwd() 获取当前工作目录,即当前python脚本工作的目录路径os.chdir("dirname") 改变当前脚本工作目录:相当于shell下cdos. ...
- springboot入门之一:环境搭建
springboot简介 springboot做为微服务的开发集合框架,有着天然的好处,它不像springmvc那样笨重繁杂,springmvc众多的配置使得开发人员很厌烦,为解决众多的配置带来的烦扰 ...
- linux 下 python 安装 Django
安装 setuptools 使用easy_install命令 easy_install django
- Eclipse将Java项目打成jar工具包
jar包:就是别人已经写好的一些类,然后将这些类进行打包,你可以将这些jar包引入你的项目中,然后就可以直接使用这些jar包中的类和属性以及方法. jar包可分为可执行jar包和jar工具包,在这里, ...
- Git + Gerrit 操作备忘
Git review 作用 可以用来提交代码审核到Gerrit 安装 使用pip 安装 git-review 插件,执行 sudo -H pip install git-review 使用示例 可以参 ...
- 【RL系列】On-Policy与Off-Policy
强化学习大致上可分为两类,一类是Markov Decision Learning,另一类是与之相对的Model Free Learning 分为这两类是站在问题描述的角度上考虑的.同样在解决方案上存在 ...
- kaldi DNN在线解码 aishell为例
在kaldi 的工具集里有好几个程序可以用于在线识别.这些程序都位在src/onlinebin文件夹里,他们是由src/online文件夹里的文件编译而成(你现在可以用make ext 命令进行编译) ...
- 使用qemu启动dd制作的img镜像
1. 准备工作 应用场景 在需要单机取证时,需要在不影响对象业务的情况下进行取证或分析,可以使用dd 对目标服务器进行镜像,生成img文件,镜像可以通过winhex进行静态分析.但是想要动态分析服务器 ...