关于质因数求最小公倍数

一般的最小公倍数我们可以直接相乘并除以这两个数的最大公倍数来求,但如果数字变多,记不太好求了 。


所以可以使用质数筛来求最小公倍数。

具体来看  当我们要求1~n 的最小公倍数时,有一条定理可以使用(我不会证):

n个数的最小公倍数是这n个数里所有质因数的最高幂的乘积。

详见代码:

#include <bits/stdc++.h>

using namespace std;

typedef long long ll;
ll mod=100000007;
const int M=100000000;
bool a[M+5];
int b[7000005];
int p=0,n;
ll ans=1;

void fun()
{
	a[0]=a[1]=1;
	for(register int i=2; i<=n; i++) 
	{
		if(!a[i])
		{
			b[p++]=i;
			for(ll k=i; k<=n; k*=i)
			{
				ans=ans*1ll*i%mod; 
			}
		}
		for(register int j=0; j<p&&i*b[j]<=M; j++)
		{
			a[i*b[j]]=1;
			if(i%b[j]==0)
				break;
		}
	}
}

int main()
{
	cin>>n;
	fun();
	cout<<ans<<endl;
	return 0;
}

其实就是在质数筛的时候顺便把这个质数的乘积给算出来。

相关推荐

  1. 关于质因数公倍数

    2024-06-06 17:26:04       30 阅读
  2. 公倍数

    2024-06-06 17:26:04       56 阅读
  3. 公倍数

    2024-06-06 17:26:04       33 阅读
  4. Z4.3 公约数公倍数

    2024-06-06 17:26:04       46 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-06-06 17:26:04       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-06-06 17:26:04       100 阅读
  3. 在Django里面运行非项目文件

    2024-06-06 17:26:04       82 阅读
  4. Python语言-面向对象

    2024-06-06 17:26:04       91 阅读

热门阅读

  1. ThinkPHP(FastAdmin)快递100订阅快递信息

    2024-06-06 17:26:04       32 阅读
  2. wordpress主题建站的步骤和流程

    2024-06-06 17:26:04       30 阅读
  3. kafka 可以脱离 zookeeper 单独使用吗?为什么?

    2024-06-06 17:26:04       25 阅读
  4. Android串口调试ADB

    2024-06-06 17:26:04       27 阅读
  5. 元宇宙概念及关键技术

    2024-06-06 17:26:04       32 阅读
  6. 调用大模型API 给产业分类

    2024-06-06 17:26:04       34 阅读
  7. 什么情况下AI可以不用预先设定算法和规则?

    2024-06-06 17:26:04       31 阅读
  8. matlab误差估计扩展卡尔

    2024-06-06 17:26:04       28 阅读