首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在没有gcd算法的情况下找到lcm --关于

在没有gcd算法的情况下找到lcm(最小公倍数)。

最小公倍数(Least Common Multiple,简称LCM)是指两个或多个整数公有的倍数中最小的一个。在没有gcd算法的情况下,可以通过以下步骤找到lcm:

  1. 找到给定整数的所有因子。
  2. 对于每个因子,计算其在两个或多个整数中出现的最大次数。
  3. 将所有因子的最大次数相乘,得到最小公倍数。

举例说明:

假设要找到整数12和18的最小公倍数。

  1. 找到12和18的所有因子:
    • 12的因子为1、2、3、4、6、12。
    • 18的因子为1、2、3、6、9、18。
  • 计算每个因子在两个整数中出现的最大次数:
    • 因子1在12和18中都出现了1次。
    • 因子2在12中出现了2次,在18中出现了1次。
    • 因子3在12中出现了1次,在18中出现了2次。
    • 因子4在12中出现了1次,在18中没有出现。
    • 因子6在12中出现了2次,在18中出现了1次。
    • 因子9在12中没有出现,在18中出现了1次。
    • 因子12在12中出现了1次,在18中没有出现。
  • 将所有因子的最大次数相乘:
    • 1^1 * 2^2 * 3^2 * 4^1 * 6^2 * 9^1 * 12^1 = 2^2 * 3^2 * 6^2 * 9 = 36 * 36 * 9 = 11664。

因此,整数12和18的最小公倍数为11664。

腾讯云相关产品和产品介绍链接地址:

  • 腾讯云计算服务:https://cloud.tencent.com/product
  • 腾讯云数据库:https://cloud.tencent.com/product/cdb
  • 腾讯云服务器:https://cloud.tencent.com/product/cvm
  • 腾讯云云原生应用引擎:https://cloud.tencent.com/product/tke
  • 腾讯云音视频处理:https://cloud.tencent.com/product/mps
  • 腾讯云人工智能:https://cloud.tencent.com/product/ai
  • 腾讯云物联网:https://cloud.tencent.com/product/iotexplorer
  • 腾讯云移动开发:https://cloud.tencent.com/product/mobiledk
  • 腾讯云对象存储:https://cloud.tencent.com/product/cos
  • 腾讯云区块链:https://cloud.tencent.com/product/baas
  • 腾讯云元宇宙:https://cloud.tencent.com/product/vr
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

【Java小工匠聊密码学】--非对称加密--RSA1

RSA加密算法是一种非对称加密算法。在公开密钥加密和电子商业中RSA被广泛使用。RSA是1977年由罗纳德·李维斯特(Ron Rivest)、阿迪·萨莫尔(Adi Shamir)和伦纳德·阿德曼(Leonard Adleman)一起提出的。当时他们三人都在麻省理工学院工作。RSA就是他们三人姓氏开头字母拼在一起组成的。   对极大整数做因数分解的难度决定了RSA算法的可靠性。换言之,对一极大整数做因数分解愈困难,RSA算法愈可靠。假如有人找到一种快速因数分解的算法的话,那么用RSA加密的信息的可靠性就肯定会极度下降。但找到这样的算法的可能性是非常小的。今天只有短的RSA钥匙才可能被强力方式解破。到目前为止,世界上还没有任何可靠的攻击RSA算法的方式。只要其钥匙的长度足够长,用RSA加密的信息实际上是不能被解破的。

03

hdu1796 How many integers can you find

//设置m,Q小于n可以设置如何几号m随机多项整除 //利用已知的容斥原理 //ans = 数是由数的数目整除 – 数为整除的两个数的数的最小公倍数 + 由三个数字。。。 #include<cstdio> #include<cstring> #include<iostream> using namespace std ; const int maxn = 110 ; typedef __int64 ll ; int a[maxn] ; int len ; int n , m ; ll gcd(ll a , ll b) { if(b == 0) return a ; return gcd(b, a%b) ; } int dfs(int pos , ll lcm) { int ans = 0 ; for(int i = pos ;i <= len;i++) { ll lcm_n = lcm*a[i]/gcd(lcm , a[i]) ;//最小公倍数可能会爆int,被坑了一下 ans += (n-1)/lcm_n – dfs(i+1 , lcm_n) ; } return ans ; } int main() { while(~scanf(“%d%d” , &n , &m)) { len = 0 ; for(int i = 1;i <= m;i++) { int t ; scanf(“%d” , &t) ; if(!t) continue ;//可能会有0 a[++len] = t ; } int ans = dfs(1 , 1) ; printf(“%d\n” , ans) ; } return 0 ; }

01
领券