HDU4497 GCD and LCM(数论,质因子分解)
如果 \(G \% L != 0\) ,那么输出 \(0\) 。
否则我们有 \(L/G=(p_1^{r_1})\cdot(p_2^{r_2})\cdot(p_3^{r_3})\cdots(p_m^{r_m})\) 。
我们又有:
y=(p_1^{j_1})\cdot(p_2^{j_2})\cdot(p_3^{j_3})\cdots(p_m^{j_m}) \\
z=(p_1^{k_1})\cdot(p_2^{k_2})\cdot(p_3^{k_3})\cdots(p_m^{k_m})
\]
对于某个 \(r\) ,\(i、j、k\) 里面一定有一个是 \(r\) ,并且一定有一个是 \(0\) ,所以 \(i,j,k\) 有一下 \(3\) 种情况:
\((r\ 0\ 0)\) ,有 \(C(3,1)\) 种。
\((r\ 0\ r)\) ,有 \(C(3,1)\) 种。
\(r\ 0\ 1~r-1)\) ,有 \((r-1)\cdot A(3,3)\) 种。
所以一共是 \(6\times r\) 种。
时间复杂度为 \(O(\sqrt{n}\cdot \log n)\) 。
#include<bits/stdc++.h>
using namespace std;
int t;
long long l ,g, ans;
int main()
{
for(scanf("%d", &t); t--; ){
scanf("%lld%lld", &l, &g);
if(g % l == 0){
long long tmp = g / l;
ans = 1;
for(int i = 2; i * i <= g / l; i++){
long long r = 0;
while(tmp % i == 0) r++, tmp /= i;
if(r) ans *= (6 * r);
}
if(tmp != 1) ans *= 6;
cout << ans << endl;
}
else{
puts("0");
}
}
return 0;
}
HDU4497 GCD and LCM(数论,质因子分解)的更多相关文章
- 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
这个题目挺不错的,看到是通化邀请赛的题目,是一个很综合的数论题目. 是这样的,给你三个数的GCD和LCM,现在要你求出这三个数有多少种可能的情况. 对于是否存在这个问题,直接看 LCM%GCD是否为0 ...
- 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 * ...
- hdu4497 GCD and LCM ——素数分解+计数
link:http://acm.hdu.edu.cn/showproblem.php?pid=4497 如果G%L != 0,说明一定无解. 把K = G / L质数分解,G / L = p1^t1 ...
- CF EDU 1101D GCD Counting 树形DP + 质因子分解
CF EDU 1101D GCD Counting 题意 有一颗树,每个节点有一个值,问树上最长链的长度,要求链上的每个节点的GCD值大于1. 思路 由于每个数的质因子很少,题目的数据200000&l ...
- 简单数论总结1——gcd与lcm
并不重要的前言 最近学习了一些数论知识,但是自己都不懂自己到底学了些什么qwq,在这里把知识一并总结起来. 也不是很难的gcd和lcm 显而易见的结论: 为什么呢? 根据唯一分解定理: a和b都可被分 ...
- HDU 4497 GCD and LCM(数论+容斥原理)
GCD and LCM Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65535/65535 K (Java/Others)Total ...
- GCD and LCM HDU 4497 数论
GCD and LCM HDU 4497 数论 题意 给你三个数x,y,z的最大公约数G和最小公倍数L,问你三个数字一共有几种可能.注意123和321算两种情况. 解题思路 L代表LCM,G代表GCD ...
- ATcoder E - Flatten 质因子分解求LCM
题解:其实就是求n个数的lcm,由于数据特别大,求lcm时只能用质因子分解的方法来求. 质因子分解求lcm.对n个数每个数都进行质因子分解,然后用一个数组记录某个质因子出现的最大次数.然后累乘pow( ...
随机推荐
- mysql文本后面带换行符导致查询不到
UPDATE tablename SET FIELD = REPLACE(REPLACE(FIELD, CHAR(10), ''), CHAR(13), ''); CHAR(10): 换行符 CH ...
- python 抓取拉勾网 攻略
废话不多说,直接上代码,将数据存入Mongdb import requests import pymongo import time import random mycon = pymongo.Mon ...
- windows核心编程01_错误处理
windows函数调用出错时,可以通过方法去查询出错根源在哪里. #include <Windows.h> #include <iostream> using namespac ...
- 牛客OI周赛13-提高组 比赛总结
比赛情况 1h才写出T1 100pts + T2 50pts(都是简单dp可还行).然后就去颓废了.颓废完来康康T3的暴力,wow,T3咋这么难呢!?期望概率好像不太会了,退了吧qwq. 所以最后 1 ...
- mapper映射文件配置之select、resultMap(转载)
原文地址:http://www.cnblogs.com/dongying/p/4073259.html 先看select的配置吧: <select <!-- 1. id ( ...
- MapReduce 中的两表 join 方案解析
1. 概述 在传统数据库(如:MYSQL)中,JOIN操作是非常常见且非常耗时的.而在HADOOP中进行JOIN操作,同样常见且耗时,由于Hadoop的独特设计思想,当进行JOIN操作时,有一些特殊的 ...
- linux 上搭建sftp服务
原文链接:https://www.cnblogs.com/yanduanduan/p/9046723.html sftp和ftp的区别 FTP是一种文件传输协议,一般是为了方便数据共享的.包括一个FT ...
- Python 3标准库课件
开课前的一些讲话: 一.大家晚上好,首先非常的荣幸能够在网易云平台开设讲解Python的这门课程,我也是第一次讲解哦,下面说说我讲解课程的原因,1.因为我发现市场上讲解Python的课程很多,不过,大 ...
- Linux基本命令+Makefile
1.linux下查看进程占用cpu的情况(top): 格式 top [-] [d delay] [q] [c] [S] [s] [i] [n] 主要参数 d:指定更新的间隔,以秒计算. q:没有任何延 ...
- maven 三个仓库表
https://search.maven.org ,http://www.mvnrepository.com/ http://maven.apache.org