hdu4497-GCD and LCM-(欧拉筛+唯一分解定理+组合数)
GCD and LCM
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65535/65535 K (Java/Others)
Total Submission(s): 3409 Accepted Submission(s):
1503
how many solutions of (x, y, z) there are, satisfying that gcd(x, y, z) = G and
lcm(x, y, z) = L?
Note, gcd(x, y, z) means the greatest common divisor of x,
y and z, while lcm(x, y, z) means the least common multiple of x, y and z.
Note 2, (1, 2, 3) and (1, 3, 2) are two different solutions.
number of test cases.
The next T lines, each contains two positive 32-bit
signed integers, G and L.
It’s guaranteed that each answer will fit in a
32-bit signed integer.
solutions satisfying the conditions above.
6 72
7 33
0
y=p1b1*p2b2……psbs;
z=p1c1*p2c2……pscs;
#include<stdio.h>
#include<math.h>
#include<string.h>
#include<algorithm>
#include<string>
#include<vector>
#include<iostream>
#include<cstring>
#define inf 0x3f3f3f3f
using namespace std;
#define ll long long
const int maxx=1e6+;
int prime[maxx];
int vis[maxx];
ll g,l;
int cnt;
void init()
{
memset(vis,true,sizeof(vis));
vis[]=vis[]=false;
cnt=;
for(int i=;i<=maxx;i++)
{
if(vis[i])
prime[cnt++]=i;
for(int j=;j<cnt && prime[j]*i<=maxx;j++)
{
vis[ i*prime[j] ]=false;
if(i%prime[j]==) break;
}
}
} int main()///hdu4497
{
init();
int t;
scanf("%d",&t);
while(t--)
{
ll ans=;
scanf("%lld%lld",&g,&l);
if(l%g)
printf("0\n");
else
{
for(int i=;i<cnt;i++)
{
int e=,h=;
while(g%prime[i]==)
{
e++;
g=g/prime[i];
}
while(l%prime[i]==)
{
h++;
l=l/prime[i];
}
if(h-e)
{
ans=ans*(h-e)*;
}
}
if(g==l)///32位范围内大素数因子只能有一个,l能被g整除证明这个大素数相同,不累乘
;
else if(l>)///如果g=1,l=大素数,再乘一次6
ans=ans*;
printf("%lld\n",ans);
}
}
return ;
}
hdu4497-GCD and LCM-(欧拉筛+唯一分解定理+组合数)的更多相关文章
- hdu2421-Deciphering Password-(欧拉筛+唯一分解定理+积性函数+立方求和公式)
Deciphering Password Time Limit: 5000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Oth ...
- 2018南京icpc-J-Prime Game (欧拉筛+唯一分解定理)
题意:给定n个数ai(n<=1e6,ai<=1e6),定义,并且fac(l,r)为mul(l,r)的不同质因数的个数,求 思路:可以先用欧拉筛求出1e6以内的所有质数,然后对所有ai判断, ...
- hdu3826-Squarefree number-(欧拉筛+唯一分解定理)
Squarefree number Time Limit: 10000/3000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Other ...
- noip复习——线性筛(欧拉筛)
整数的唯一分解定理: \(\forall A\in \mathbb {N} ,\,A>1\quad \exists \prod\limits _{i=1}^{s}p_{i}^{a_{i}}=A\ ...
- GCD nyoj 1007 (欧拉函数+欧几里得)
GCD nyoj 1007 (欧拉函数+欧几里得) GCD 时间限制:1000 ms | 内存限制:65535 KB 难度:3 描述 The greatest common divisor ...
- 欧拉筛,线性筛,洛谷P2158仪仗队
题目 首先我们先把题目分析一下. emmmm,这应该是一个找规律,应该可以打表,然后我们再分析一下图片,发现如果这个点可以被看到,那它的横坐标和纵坐标应该互质,而互质的条件就是它的横坐标和纵坐标的最大 ...
- 【BZOJ 2190】【SDOI 2008】仪仗队 欧拉筛
欧拉筛模板题 #include<cstdio> using namespace std; const int N=40003; int num=0,prime[N],phi[N]; boo ...
- [51NOD1181]质数中的质数(质数筛法)(欧拉筛)
题目链接:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1181 思路:欧拉筛出所有素数和一个数的判定,找到大于n的最小质 ...
- 素数筛&&欧拉筛
折腾了一晚上很水的数论,整个人都萌萌哒 主要看了欧拉筛和素数筛的O(n)的算法 这个比那个一长串英文名的算法的优势在于没有多次计算一个数,也就是说一个数只筛了一次,主要是在%==0之后跳出实现的,具体 ...
随机推荐
- Java 13 - Java 数组
Java 数组 数组对于每一门编程语言来说都是重要的数据结构之一,当然不同语言对数组的实现及处理也不尽相同. Java语言中提供的数组是用来存储固定大小的同类型元素. 你可以声明一个数组变量,如num ...
- Linux性能优化 第六章 性能工具:磁盘I/O
6.1 磁盘I/O介绍 一般来说,Linux磁盘的每个分区要么包含一个文件系统,要么包含一个交换分区.这些分区被挂载到Linux根文件系统,该系统由/etc/fstab指定.这些被挂载的文件系统包含了 ...
- Spring Boot 整合mybatis-generator
Maven 引入 mybatis-generator插件 <build> <plugins> <plugin> <groupId>org.springf ...
- mac中svn服务器的搭建以及如何在eclipse中使用
mac自带了svn客户端和服务端功能. 1.查看svn版本 svnserve --version yintingtingdeMacBook-Pro:~ yintingting$ svnserve -- ...
- C# ORM修改实体层
实体层:[数据库中是么以偶Contents2这个字段的],之所以在实体层添加一个Contents2,是因为: 所以在添加之后: 返回json形式,就用Contents,后台添加就用Contents2. ...
- .NET MVC 保存Session值,6位数验证码
//6位数验证码: Random rm = new Random(); , ).ToString(); //MVC控制器Action中 保存session值 System.Web.HttpContex ...
- 20165205 2017-2018-2 《Java程序设计》实验三 敏捷开发与XP实践
20165205 2017-2018-2 <Java程序设计>实验三 敏捷开发与XP实践 实验内容 检查点1: 安装alibaba 插件,解决代码中的规范问题 首先把搭档加入到自己的项目中 ...
- uva-519-拼图
给你N*M个碎片,问能否用他们拼成一个矩形,矩形的边缘要全是F,除外界边缘的边要么是I,要么O,不能是F1.碎片会重复出现,所以同样的碎片在同一个位置,如果已经不能放,直接跳过就行2.矩形的边缘要全是 ...
- error C2011: “timespec”:“struct”类型重定义
error C2011: “timespec”:“struct”类型重定义 C++ pthread pthread.h 中的 timespec 和time.h 中的 结构定义重复了 ,同时两个头文件中 ...
- 【3-28】JavaScript的DOM操作
一.定义:DOM是一种用于HTML和XML文档的编程接口. 二.Windows对象操作: (一)Window.open(URL,name,features,replace) 1.URL;页面地址 2. ...