gcd 与 lcm

GCD & LCM (数学基础) Given x and y (2 <= x <= 100,000, 2 <= y <= 1,000,000), you are to count the number of p and q such that: 1) p and q are positive integers; 2) GCD(p, q) = x; 3) LCM(p, q) = y. input There a 阅读详情
题目描述: 
                                 
G - GCD & LCM
Crawling in process... Crawling failed Time Limit:1000MS    Memory Limit:32768KB   64bit IO Format:%lld & %llu

Description

Given x and y (2 <= x <= 100,000, 2 <= y <= 1,000,000), you are   to count the number of p and q such that:

1) p and q are positive integers;

2) GCD(p, q) = x;

3) LCM(p, q) = y.


<b< body="">

Input

x and y, one line for each test.


<b< body="">

Output

Number of pairs of p and q.


<b< body="">

Sample Input

3 60


<b< body="">

Sample Output

4

 

 

题目大意:就是找出p*q=x*y,pq的对数。

用一个公式很好:(a/gcd  )* ( b/gcd)= lcm/gcd

这样子把lcm的数量级降下来了。而且

因为左边2块互质,这样子递归求解最大公约数时的层次走少了好几步。

 

program:

#include<iostream>
#include<stdio.h>
#include<string.h>
using namespace std;
int x,y;
int lg;
int gcd(int  a,int  b)
{
  if(a%b==0)return b;
  return gcd(b,a%b);   
}
void sswap(int & a,int & b)
{
  int tmp=a;
  a=b;
  b=tmp;
}
int main()
{
while(scanf("%d%d",&x,&y)!=EOF)
{
      //最小公倍数一定能整除最大公约数!
      if(y%x!=0)
       {
            printf("0\n");
            continue;     
       }  
      lg=y/x; //(a/gcd  )* ( b/gcd)= lcm/gcd
      int a,b;
      int cnt=0;
      for(int i=1;i<=lg;i++)
      {
         a=i;
         if(lg%a==0)
            {
              b=lg/a; //把问题化为质数问题实在很棒
              if(a%2==0&&b%2==0)
                 continue;
              if(a<b)
                 sswap(a,b);
              
              if(gcd(a,b)==1)
                 cnt++;       
            }   
      }
     
       printf("%d\n",cnt);                                                
}
//system("pause");
return 0;}

 

总结:其实一个思想很重要:把求解的数转化成和质数有关来求解,因为质数相对合数少很多,所以这样处理问题范围减小很多!

另为什么验证素数的时候只需验证到该数的开方根呢?因为如果n可以被一个数整除,那么就必然有一个因子小于开方根,必然有一个因子大于开方根

 

因为i=a×b,a与b不能同时大于sqrt(i),为什么呢?如果a>sqrt(i),b>sqrt(i),于是a×b>sqrt(i)*sqrt(i)=i,因此就都不能整除i了!

MACS2软件进行Peak calling MACS2可以检出ChIP-Seq,ATAC-seq 以及 MeRIP-seq (RNA甲基化测序) 等富集的序列。peaks calling 有不同的方法,MACS2是最常用的call peaks工具。 MACS全称Model-based Analysis of ChIP-Seq,最初的设计是用来鉴定转录因子的结合位点,但是它也可以用于其他类型的富集方式测序。usage: macs2 [-h] [--version] {callpeak,bdgpeakcall,bdgbroadca 阅读详情

相关推荐

U盘文件变exe?3步教你用火绒+批处理脚本恢复隐藏文档(附注册表修复)

本文详细解析了U盘文件被病毒隐藏并伪装成exe文件的原理,并提供了三步解决方案:首先使用火绒安全软件进行全盘查杀清除病毒;其次通过批处理脚本批量恢复被隐藏的文件属性;最后修复被篡改的注册表设置,彻底解决文件无法显示的问题,帮助用户安全找回数据并加固系统防护。

weixin_28622215的博客 919

51nod-1434 区间LCM

原题链接 1434 区间LCM 题目来源: TopCoder 基准时间限制:1 秒 空间限制:131072 KB 分值: 40 难度:4级算法题  收藏  关注 一个整数序列S的LCM(最小公倍数)是指最小的正整数X使得它是序列S中所有元素的倍数,那么LCM(S)=X。 例如,LCM(2)=2,LCM(4,6)=12,LCM

L. 457

Claude Code长期记忆:优雅的上下文管理

ClaudeCode的上下文管理系统采用三层架构设计,通过智能压缩和优化策略在记忆容量与性能间取得平衡。系统包含短期记忆(高速工作区)、中期记忆(智能蒸馏器)和长期记忆(持久化知识库)。当Token使用率达到92%阈值时启动wU2压缩器,采用8段式结构化摘要保留关键信息,并配合智能文件恢复和渐进式预警机制。该系统通过分层处理、优雅降级和透明化交互,为AI应用提供了高效可靠的上下文管理方案,展现了在有限资源下实现智能记忆的艺术。

m0_53117338的博客 3818

C - Orac and LCM(lcm,gcd性质)

题意:给个序列,求所有两两组合的lcm,对这些lcm再求gcd。 性质:两个数的lcm等于,他们各自质因子次数大者的乘积,例如lcm(10,24)=120,其中10=2^1 *5^1, 24=2^3 *3^1,lcm就是取 2^3, 3^1, 5^1。 思路:对于每一个质因子,用k描述它在序列所有数中的出现的次数,如果有2个及以上的数没有这个质因子,那么这两个数的lcm也不包含这个因子,否则对于每一对数的lcm来说都是包含这个因子的,那么现在需要做的是找出所有对的lcm中每个质因子次数最小的。。。。就这样

qq_43543086的博客 403

集成学习综述—bagging/随机森林/adaboost/GBDT/XGBoost/LightGBM/catboost 原理和代码介绍

集成学习介绍 文章目录集成学习介绍1 基本概念1.1 定义基本定义集成学习类别参考链接1.2 基学习器(CART)介绍公式介绍例子讲解代码实践参考链接1.3 偏差(bias)和方差(var)公式推导图解参考链接2 Boosting类2.1 原理2.2 AdaBoost2.2.2 公式推导2.2.3 优点与不足优点不足应用2.2.4 代码实践2.2.5 参考链接2.3 GBDT原理介绍代码实践参考...

fzl的博客 4618

IMU预积分【SLAM】

预积分的推导过程比较多,所以这里只记录关键结论。 其实这些公式不太好记忆,因为预积分推导过程的想法来源很巧妙,无法看出物理意义。一切推导的来源: 最好记忆的旋转相对运动量: △Rij≐RiTRj=∏k=ij−1Exp((ω~k−bg,k−ηgd,k)△t)\triangle R_{ij} \doteq R_{i}^{T}R_{j} = \prod_{k=i}^{j-1}Exp((\tilde{\omega}_{k}-b_{g,k}-\eta_{gd,k})\triangle t) △Rij​≐RiT​Rj​

Tong_1024_的博客 1373

hdu 5726 GCD

给n个数,q次询问,每次问区间[l,r]的GCD以及整个区间内有多少个gcd为此的区间。 求区间gcd很好求,而有多少个这样的gcd,可以预处理出区间所有的gcd,因为一个n个数的区间最多有logn种gcd,所有暴力枚举即可。 #include <bits/stdc++.h> #define pb push_back #define mp m...

ad4627的博客 195

AD9371 官方例程构建及单音信号收发

项目构建基本流程和AD9361差不多,由于官方使用的ZCU102,记录下移植遇到的一些问题最终接收到正确的正弦波Errors: 0Errors: 0Errors: 0Errors: 0AD9361。

weixin_44630490的博客 2973

C. Orac and LCM(gcd与lcm的性质)

Orac有一个长度为n的序列,他想出了一个多集t={lcm({ai,aj}) | i

m0_64158084的博客 778

内模控制(IMC)——理论、应用与实践

内模控制方法的核心思想是利用被控对象的数学模型(即内模)构建控制器,使得控制器可以“预知”被控系统的动态响应,从而在控制输入中提前补偿模型的固有特性和扰动影响。常见的内模控制结构中,将系统分为无延迟部分和扰动部分,并利用内部模型预测输出值,再通过反馈回路进行误差修正。utuimctufbtutui​mctuf​bt其中,uimctu_imc(t)ui​mct为内模预测得到的预补偿控制量,ufbtu_fb(t)uf​bt。

闲人编程的博客 2634

15、Qt开发中的停靠窗口、工具栏与多文档界面实现

本文详细介绍了Qt开发中停靠窗口、工具栏与多文档界面(MDI)的实现方法。通过QDockWidget和QToolBar构建灵活的用户界面,并利用QMainWindow的saveState和restoreState功能实现布局持久化;使用QMdiArea和QMdiSubWindow实现多文档管理,结合MainWindow与Editor类完成文件操作与窗口控制。文章包含完整代码示例、流程图与表格总结,适用于开发集成环境、文本编辑器等复杂桌面应用。

snow3的博客 163

求最大公约数(gcd)和最小公倍数(lcm)算法

最大公约数:算法思想是欧几里得的辗转相除法

NJU_Flipped的博客 3918

OpenClaw 预置技能完全指南

OpenClaw 技能(Skills)是扩展 AI 助手能力的插件系统。🔐 管理密码和敏感信息(1Password)📝 操作 Apple Notes 和 Reminders🔍 实时搜索互联网(Brave Search)🎨 生成和编辑图片(Nano Banana Pro)📧 收发邮件(Himalaya)🏠 控制智能家居(OpenHue、Eight Sleep)💬 发送消息(iMessage、WhatsApp、Slack)🎵 控制音乐播放(Spotify、Sonos)

Maynor的博客 1704

GCD与LCM

整数a和b的最大公约数是指能同时被a和b整除的最大整数,记为gcd(a,b)。例如,gcd(15,81)=3。注意:由于-a的因子与a的因子相同,因此gcd(a,b)=gcd(|a|,|b|)。编码只需关注正整数的最大公约数。整数a和b的最小公倍数表示为为lcm(a,b)。例如,lcm(5,6)=30。

a111737289291的博客 3074

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

数学--GCD和LCM

GCD,LCM,辗转相除法

2302_80219536的博客 1135

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

gcd和lcm算法

gcd和lcm算法 gcd(greatest common divisor)为最大公约数,lcm(least common multiple)为最小公倍数。 gcd算法 下面的算法是欧几里得算法(Euclidean algorithm),也叫辗转相除法。 int gcd(int a, int b) { if (b == 0) { return a; } return gcd(b, a % b); } lcm算法 两个整数的最小公倍数与最大公因数之间有如下的关系:

ocfbnj的博客 9431

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

LCM与GCD

LCM最小公倍数、GCD最大公约数: 定理:a、b 两个数的最小公倍数乘以它们的最大公约数等于 a 和 b 本身的乘积。 LCM(a,b)*GCD(a,b)=a*b * GCD最大公约数的递归: * 1、若a可以整除b,则最大公约数是b * 2、如果1不成立,最大公约数便是b与a%b的最大公约数 * 示例:求(140,21) * 140%21 = 14 * 21%14 = 7 * ...

qq_43575703的博客 1316

小小GCD、LCM拿下拿下

GCD、LCM是算法当中的基础之基础,分别对应最大公约数、最小公倍数,在算法竞赛中涉及到的概率也是比较高的,GCD、LCM在小学时就涉及到了求法,本篇将给大家详解GCD、LCM这两个函数,并且提供最简单的模板,在考察时,直接背上即可。

闻道有先后,术业有专攻 2649

GCD和LCM

  GCD _ LCM 是给你两个数A B 的最大公约数, 以及最小公倍数   the greatest common divisor and the least common multiply !   最大公约数最简单、最常见的算法,就是辗转相除法 : 假设 GCD(A , B) ; A / B = P ; A % B = Q; 那么 A = B ...

aoxieqian3601的博客 255

UVA11388 GCD LCM【GCD+LCM】

The GCD of two positive integers is the largest integer that divides both the integers without any remainder. The LCM of two positive integers is the smallest positive integer that is divisible by bot...

海岛Blog 743

LCM与GCD算法

LCM与GCD算法

今を生きる 1192

GCD和LCM算法

a 能整除b,记为 a|b。其中,a 和 b为整数,且a不等于0, b是a 的倍数,a 是b的约数(因子)。如:13|182,一5|35,-3|36;6 的因子是士1、2、土3、土6。性质1)若a,b,c为整数,且alb、blc,则alc;2)若a、b、m,n为整数,且cla、clb,则cl(ma+nb);3)定理:带余除法。如果a和b为整数且b>0,则存在唯一的整数 q、r,使a=bq+r,0

lclchong的博客 2936

【蓝桥杯】GCD与LCM

最大公约数(GCD)和最小公倍数(Least Common Multiple,(a, b)来计算最大公约数。

Hsianus的博客 1538

Python中数学问题1--lcm、gcd

本文详细讲解了关于gcd和lcm最大公约数和最小公倍数相关的知识点、代码模板和经典题型。同时详细解释了裴蜀定理以及reduce函数。

a72024791的博客 2538
上一篇: POJ1306 组合数学之排列 基础例子(一)
下一篇: SPFA 算法详解( 强大图解,不会都难!)
muximuxi525
博客等级 码龄15年 134粉丝 294原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值