hdu4497 正整数唯一分解定理应用
Crawling in process... Crawling failed Time Limit:1000MS Memory Limit:65535KB 64bit IO Format:%I64d & %I64u
Description
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.
Input
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.
Output
Sample Input
6 72
7 33
Sample Output
0
由分步乘法计数原理,最终答案为(6*b1)*(6*b2)*........(6*bn)
- #include <iostream>
- #include <cstdio>
- #include <cstring>
- #include<algorithm>
- #include <cmath>
- using namespace std;
- typedef long long ll;
- const int maxn=2e5;//
- bool vis[maxn];
- ll prime[maxn/];
- int tot;
- void getprime()//因为n的范围是1e14,打表只需要打到sqrt(n)即可,最多只可能有一个素因子大于sqrt(n),最后特判一下即可;
- {
- memset(vis,true,sizeof(vis));
- tot=;
- for(ll i=;i<maxn;i++)
- {
- if(vis[i])
- {
- prime[tot++]=i;
- for(ll j=i*i;j<maxn;j+=i)
- {
- vis[j]=false;
- }
- }
- }
- }
- /*void Eulerprime()
- {
- memset(vis,true,sizeof(vis));
- int tot=0;
- for(int i=2;i<maxn;i++)
- {
- if(vis[i]) prime[tot++]=i;
- for(int j=0;j<tot&&prime[j]*i<maxn;j++)
- {
- vis[i*prime[j]]=false;
- if(i%prime[j]==0) break;
- }
- }
- }*/
- int a[],b[];
- int cnt=;
- void sbreak(ll n)//正整数唯一分解
- {
- memset(a,,sizeof(a));
- memset(b,,sizeof(b));
- cnt=;
- for(int i=;prime[i]*prime[i]<=n;i++)
- {
- if(n%prime[i]==)
- {
- a[cnt]=prime[i];
- while(n%prime[i]==)
- {
- b[cnt]++;
- n/=prime[i];
- }
- cnt++;
- }
- }
- if(n!=)
- {
- a[cnt]=n;
- b[cnt]=;
- cnt++;//为了使两种情况分解后素因子下标都是0~cnt-1;
- }
- }
- int pow_mod(int m,int n)
- {
- ll pw=;
- while(n)
- {
- if(n&) pw*=m;
- m*=m;
- n/=;
- }
- return pw;
- }
- int kase;
- int main()
- {
- int T;
- ll L,G;
- getprime();
- scanf("%d",&T);
- kase=;
- while(T--)
- {
- scanf("%lld%lld",&G,&L);
- if(L%G) {printf("0\n");continue;}
- ll n=L/G;
- sbreak(n);
- ll sum=;
- for(int i=;i<cnt;i++)
- {
- sum*=(*b[i]);
- }
- printf("%lld\n",sum);
- }
- }
hdu4497 正整数唯一分解定理应用的更多相关文章
- hdu1215 正整数唯一分解定理应用
B - (例题)因子和 Crawling in process... Crawling failed Time Limit:1000MS Memory Limit:32768KB 64 ...
- lightoj 1236 正整数唯一分解定理
A - (例题)整数分解 Crawling in process... Crawling failed Time Limit:2000MS Memory Limit:32768KB 6 ...
- NOIP2009Hankson 的趣味题[唯一分解定理|暴力]
题目描述 Hanks 博士是 BT (Bio-Tech,生物技术) 领域的知名专家,他的儿子名叫 Hankson.现 在,刚刚放学回家的 Hankson 正在思考一个有趣的问题. 今天在课堂上,老师讲 ...
- 1341 - Aladdin and the Flying Carpet ---light oj (唯一分解定理+素数筛选)
http://lightoj.com/volume_showproblem.php?problem=1341 题目大意: 给你矩形的面积(矩形的边长都是正整数),让你求最小的边大于等于b的矩形的个数. ...
- UVa 10791 Minimum Sum LCM【唯一分解定理】
题意:给出n,求至少两个正整数,使得它们的最小公倍数为n,且这些整数的和最小 看的紫书--- 用唯一分解定理,n=(a1)^p1*(a2)^p2---*(ak)^pk,当每一个(ak)^pk作为一个单 ...
- 简单数论之整除&质因数分解&唯一分解定理
[整除] 若a被b整除,即a是b的倍数,那么记作b|a("|"是整除符号),读作"b整除a"或"a能被b整除".b叫做a的约数(或因数),a ...
- 唯一分解定理(以Minimun Sum LCM UVa 10791为例)
唯一分解定理是指任何正整数都可以分解为一些素数的幂之积,即任意正整数n=a1^p1*a2^p2*...*ai^pi:其中ai为任意素数,pi为任意整数. 题意是输入整数n,求至少2个整数,使得它们的最 ...
- hdu4497-GCD and LCM-(欧拉筛+唯一分解定理+组合数)
GCD and LCM Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65535/65535 K (Java/Others)Total ...
- hdu1215-七夕节-(埃氏筛+唯一分解定理)
七夕节 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submiss ...
随机推荐
- hdu 1711 Number Sequence(KMP模板题)
我的第一道KMP. 把两个数列分别当成KMP算法中的模式串和目标串,这道题就变成了一个KMP算法模板题. #include<stdio.h> #include<string.h> ...
- Java系列--第四篇 基于Maven的SSME之发送邮件
在系列第一篇中,使用的是mybatis得到了一个小小的项目,而该项目的用户对象是有邮件地址的,如果按照邮件地址给对方去一封邮件会不会更能体现针对性呢,所以,我在这篇准备加入发送邮件的功能,利用的就是s ...
- [Mugeda HTML5技术教程之11]Mugeda API简介
一.API 概述 Mugeda API 提供了一个简单的,结构化的方法来实时动态管理Mugeda内容.它提供了一下方法: •访问Mugeda内容中的对象. •获取和设置对象属性,如位置.旋转.比例.不 ...
- 实例讲解MySQL联合查询
好了终于贴完了MySQL联合查询的内容了,加上上一篇一共2篇,都是我转载的,实例讲解MySQL联合查询.那下面就具体讲讲简单的JOIN的用法了.首先我们假设有2个表A和B,他们的表结构和字段分别为: ...
- Mediawiki.org的PHP编码约定
http://www.mediawiki.org/wiki/Manual:Coding_conventions/PHP assignment作为expression来用看起来像个错误(looks su ...
- iOS平台在ffmpeg中使用librtmp
转载请注明出处:http://www.cnblogs.com/fpzeng/p/3202344.html 系统版本:OS X 10.8 一.在iOS平台上交叉编译librtmp librtmp lin ...
- CentOS下安装JDK6u21和设置环境变量bin文件
1.先通过SSH登录到Linux系统中,通过SSH文件管理工具把Linux的JDK安装包上传到/home/acm/JavaTools/JDK目录: 2.进入/home/acm/JavaTools/JD ...
- hdu Examining the Rooms
这道题的知识点第一次听说 ,就是应用斯特林数.题目的意思是给你房间数N,和最多能破门的个数,让你求能全部把房间打开的概率! a[i][j]=a[i-1][j-1]+(i-1)*a[i-1][j]; # ...
- 抗忙,,建个MAVEN的私服仓库-NEXUS
公司最近需求越来越上轨道,MAVEN的私服仓库-NEXUS构架起来哟.. 参考文档URL: http://www.linuxidc.com/Linux/2011-07/39578p3.htm http ...
- Codeforces 437E The Child and Polygon
http://codeforces.com/problemset/problem/437/E 题意:求一个多边形划分成三角形的方案数 思路:区间dp,每次转移只从一个方向转移(L,R连线的某一侧),能 ...