LCM from 1 to n LightOJ - 1289

【论文精读】Formal Mathematical Reasoning: A New Frontier in AI 注:本文根据师兄汇报内容总结。 阅读详情

题目:LCM from 1 to n LightOJ - 1289 

题意:给你一个数n求LCM(1, 2,........,n ),LCM 为最大公约数。

思路:该题可以根据n = 10找一下规律。

1    2   3    4    5    6     7     8     9    10

最大公约数为5 * 7 * 8* 9 = 2520,可以看出规律LCM等于p1^x1*p2^x2*p3^x3........pn^xn, p1...pn,为连续的质数。那么xi怎么求,n不断的除以pi,例如上面的例子,8就是10不断的除以2,一共除以3次2,所以2^3 = 8,所以8出来了,9同样的道理,10不断的除以3z最多除以两次3,3^2 = 9,那么9就出来了。所以需要把素数筛出来,但是数据的范围是1e8所以直接开数组不可以,所以需要位图,只需要理解位图的原理,咱么有比较好用的STL的容器bitset和位图的原理一样,可以压缩空间。那么我们直接上欧拉筛,把素数直接筛出来。虽然把素数筛出来但是还是存在问题的,如果你把所有的素数直接遍历到n之间最大的素数,最终的结果指定超时,所以我们就想到,前缀积(就是前缀和的思想),然后查找到比n小的最大的素数,然后在重新遍历以下pri[i]*pri[i] <= n(大于这个条件的素数就只有一个,已经利用前缀积求出来了)的数,求出n连续除以pri[i]的个数减去1,为什么减去1,因为前缀积已经求了,所以需要减去1.

代码:

#include<bits/stdc++.h>
using namespace std;
#define LL long long
const int maxn = 1e8+5;
unsigned int pri[5800000];
const long long mod = 1LL<<32;
unsigned int sum[5800000];
bitset<maxn>vis;//位图压缩空间
int cn = 1;
void Prime(){//欧拉筛
     pri[0] = 0;
     for(int i = 2; i < maxn; i++){
        if(!vis[i])pri[cn++] = i;
        for(int j = 1; j < cn && i * pri[j] < maxn; j++){
            vis[i*pri[j]] = true;
            if(i % pri[j] == 0)break;
        }
     }
     sum[0] = 1;
     for(int i = 1; i < cn; i++){//前缀积
        sum[i] = sum[i-1]*pri[i];
     }
    // pri[cn] = maxn;
}
LL q_pow(int a, int b){//快速幂
   LL ans = 1, base = a;
   while(b){
       if(b & 1)ans = (ans * base) % mod;
       base = (base * base) % mod;
       b >>= 1;
   }
return ans;
}
int main(){
    Prime();
    int T;
    scanf("%d", &T);
    int ca = 0;
    //cout<<cn<<endl;
    while(T--){
        int n;
        scanf("%d", &n);
        int pos = upper_bound(pri+1, pri+cn, n) - pri-1;//二分查找第一个比n大的数,然后减去1,就小于等于n
        LL ans = sum[pos] % mod;
        for(int i = 1; i < cn && pri[i]*pri[i] <= n; i++){//
            int t = n;
            int k = 0;
            while(t / pri[i]){
                t /= pri[i];
                k++;
            }
            ans = q_pow(pri[i], --k)*ans % mod;
        }
        printf("Case %d: %lld\n",++ca, ans%mod);
    }

return 0;
}

 

【Mode】FDE 求解器工作流程 Lumerical---FDE(Finite Difference Eigenmode) Solver 阅读详情

相关推荐

从零构建个人知识库:Obsidian与Git实践打造可生长的第二大脑

在信息爆炸的时代,如何有效管理个人知识资产,构建一个可检索、可关联、可生长的个人知识库,成为提升学习效率和创造力的关键。其核心原理在于通过系统化的信息架构与工作流设计,将碎片化信息转化为结构化的知识网络。从技术价值看,这不仅是笔记方法的升级,更是个人知识管理(PKM)和思维模式的革新,能有效对抗信息过载与知识孤岛。实践中,以Obsidian为代表的本地Markdown笔记软件,结合双向链接和关系图谱功能,为知识网络的构建提供了强大支撑;而引入Git进行版本控制,则确保了知识资产的历史可追溯性与安全备份。这种

weixin_28836989的博客 301

51nod1434 区间LCM(思维,LCM唯一分解)

题目 一个整数序列S的LCM(最小公倍数)是指最小的正整数X使得它是序列S中所有元素的倍数,那么LCM(S)=X。 例如,LCM(2)=2,LCM(4,6)=12,LCM(1,2,3,4,5)=60。 现在给定一个整数N(1<=N<=1000000),需要找到一个整数M,满足M>N,同时LCM(1,2,3,4,...,N-1,N) 整除 LCM(N+1,N+2,....,M...

青鱼的博客 516

Autoware.universe部署03:与Carla(二进制版)联调

本文介绍了 Autoware.universe 与 Carla 二进制版的联调过程。Autoware.universe 是一个开源的自动驾驶软件平台,而 Carla 则是一个用于自动驾驶仿真的开源工具。将这两者联调起来可以在仿真环境中测试和验证 Autoware.universe 的功能和性能,为自动驾驶系统的开发和测试提供有力支持。

zardforever123的博客 7366

LightOJ 1289 LCM from 1 to n

题目分析 这道题首先给人的感觉就是素数筛,但是空间明显不够,但是看看时间好像可以在4ms算完,于是就要优化空间了,然后学习了一个神奇的数据结构位图。话说位图看了半天其实就是在每个数组中用保存的2进制数来表示该数是否存在。因此我们设mod为32,那么对与每一个数i都可以的到一个商即i/mod,和一个余数i%mod,并且这一对数是唯一的,因此我们就可以在vis下标为i/mod存储1<<(i%mod)

你真的介意真的在乎真的想要真的渴望的话你一定能够做到 617

树莓派上基于ONNXRuntime与Qt的C++模型部署实战指南

本文详细介绍了在树莓派上使用ONNXRuntime与Qt进行C++模型部署的完整流程。从环境配置、依赖安装到交叉编译优化,再到Qt界面集成与ARM架构性能调优,提供了实战指南和常见问题解决方案,帮助开发者高效完成边缘设备上的AI应用部署。

ik6789012的博客 337

Vivado2019.1 ZYNQ7020无Uart SDK调试打印调试信息xil_printf

Vivado2019.1 ZYNQ7020无Uart SDK调试打印调试信息xil_printf

泛红尘的博客 2996

LightOJ 1289

解题思路 用到了数论L(x) 求的是 LCM(1,2,3.....x) LCM 求最小公倍数 L(1) = 1 L(x+1) = { L(x) * p if x+1 is a perfect power of prime p { L(x) otherwise上面的知识点,在纸上推演一下就可以得出结论,根据求最小公倍数的公式,分子分母在每次遇到非素数的时候能...

北望村 424

设计一个订单管理系统(OMS)系统100问?

一个完善的订单管理系统不仅仅是简单地记录和处理订单信息,更需要考虑到订单的全生命周期管理,包括订单的创建、支付、配送、售后等环节。这100个问题围绕订单管理系统(OMS)的各个方面展开,涵盖了系统的功能、架构、安全性、异常处理、订单处理流程、支付、库存管理、客户管理、报表与分析等多个方面。通过这些问题,可以全面考虑订单管理系统在设计与实现过程中需要考虑的各种因素,从而确保系统能够满足业务需求、具有良好的性能和稳定性,同时易于扩展、维护和管理。

nbsaas-boot基于Request-Response的企业级快速开发框架 1384

LCM from 1 to n

https://cn.vjudge.net/problem/LightOJ-1289 题意   计算出1到n的数的最小公倍数 题解   我们知道一个数必定能分解成一些质数相乘,而一些数的lcm = 他们分解成的质数取最高次幂x再相乘。列如4和6分解为\(2^2\)和2*3,那么lcm = \(2^2\)*3 = 12。所以我们这道题其实就是找有多少质数在n的范围内并乘上它们在范围...

307

一条龙开发指南:MCP AI Agent 理论+项目实战开发你的MCP Server

MCP(Model Connection Protocol)是Anthropic于2024年推出的AI模型连接协议,旨在为AI模型提供开放、通用的标准化接口,类似于“USB-C”接口,使AI模型能够无缝连接各种数据源和工具。MCP通过标准化协议解决了AI系统集成中的碎片化问题,提升了开发效率和系统可靠性。开发者可以通过简单的配置,快速接入不同的MCP Server,实现AI模型的多样化应用。MCP支持多种协议,如Stdio、SSE等,并通过JSON-RPC格式进行数据传输。文章还以腾讯云代码助手为例,展示了

杨不易呀 3044

基于QT与STM32的电力参数采集系统(华为云IOT)(211)

本项目构建一款集多功能于一体的电力参数采集系统,该系统以高性能、低功耗的STM32F103RCT6微控制器为核心,集成多种传感器与通信模块,实现对电力设施如电压、电流、功率、电能及环境温度等关键参数的实时精确采集,并通过GPS模块获取设备地理位置信息,满足了电力设备状态全面监控的需求。

2900

LCM from 1 to n(素数筛+位图优化空间)

题目链接:LCM from 1 to n 题意:求1 - n的lcm 思路: 最小公倍数的适用范围:分数的加减法,中国剩余定理(正确的题在最小公倍数内有解,有唯一的解)。因为,素数是不能被1和自身数以外的其它数整除的数;素数X的N次方,是只能被X的N及以下次方,1和自身数整除。所以,给最小公倍数下一个定义:S个数的最小公倍数,为这S个数中所含素因子的最高次方之间的乘积。 如:求756,4400,...

C'est la vie! 363

如何配置SSC CANopen的excel文件

如何配置 CANOpen 的 EXCEL 文件

PI_sunyang的博客 3695

lightoj 1289 LCM from 1 to n

题意: 求LCM(1, 2, 3, ... n)的值mod 2^32 思路:很显然我们是要求所有的 注意这里的n #include #include using namespace std; typedef long long ll; const int N = 100000000+2; const ll MOD = 1LL<<32; unsigned

JayYe的专栏 1743

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

【数论】【算术基本定理】[LightOJ1289]LCM from 1 to n

题目 分析:设L(n)为LCM(1,2,3……n),则有若n+1不是 质数的完全平方,则可将质因数分解成p1^a1*p2^a2*……pn^an,对于每个pi^ai,显然<n,且两两互质,所以p1^a1*p2^a2*……pn^an|L(n),所以n+1|L(n),L(n +1)=L(n)若n+1是质数的完全平方,则n+1=p^k,p^k不整除1….n,p^k不整除L(n),因为p^(k-1)|L(n

LiuJunhao's Blog 862

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

LightOJ 1289 LCM from 1 to n(位图标记+欧拉筛)

题目链接:https://vjudge.net/contest/373416#problem/A 位图标记法:https://blog.youkuaiyun.com/acdreamers/article/details/18507767 题意:要求是让求1到n的最小公倍数。 思路:https://blog.youkuaiyun.com/qq_42815188/article/details/104328129 注:用二分查找节省时间,还有本题要求最终结果mod 2^32,可以借助 unsigned int 溢出时等价。..

xian_ing的博客 334

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

LCM from 1 to n LightOJ - 1289 节省时间的素数筛

问题: Given an integern, you have to find lcm(1, 2, 3, ..., n) lcmmeans least common multiple. For example lcm(2, 5, 4) = 20, lcm(3, 9) = 9, lcm(6, 8, 12) = 24. Input Input starts with an integerT (≤ 10000), denoting the number of test cases. Each c...

HXX904的博客 314

LightOJ 1289 LCM from 1 to n(位图标记+素数筛

https://vjudge.net/contest/324284#problem/B 数学水题,其实就是想写下位图。。和状压很像 题意:给n让求lcm(1,2,3,...,n),n<=1e8 思路:显然ans = 所有小于n的素数p[i]的max(p[i]^k)相乘。由于空间太大,装素数的数组开不下,要用位图,int可以保存32位二进制,我们可以把每一位当作一个数,又因为偶...

ddb21246的博客 199

LightOJ 1289 LCM from 1 to n(位图标记替代素数打标的bool,减小内存)

题目链接:https://vjudge.net/contest/373416#problem/A Given an integer n, you have to find lcm(1, 2, 3, …, n) lcm means least common multiple. For example lcm(2, 5, 4) = 20, lcm(3, 9) = 9, lcm(6, 8, 12) = 24. Input Input starts with an integer T (≤ 10000), deno

zaiyang遇见 317

LightOJ 1289 LCM from 1 to n (节省空间的素数筛法+n个数的最小公倍数)

题目链接:http://lightoj.com/volume_showproblem.php?problem=1289 题意:给出n,求1到n的所有数的最小公倍数,模2^32. 思路:看到结果需要模2^32,瞬间想到要尝试用unsigned int来存储结果,它可以表示的数据范围是0~2^32-1,这样不用做任何操作,结果自然就是模2^32的。 接下来就是筛素数了,常用的方法学名是:埃拉托斯

whyorwhnt的专栏 4867

Light OJ 1289 LCM from 1 to n(lcm问题+内存优化)

Light OJ 1289 LCM from 1 to n题意: 输入 t(t≤10000)t(t\leq10000) 组样例, 每组样例包含一个 n(2≤n≤108)n(2\leq n\leq10^8), 求 lcm(1,2,3,…,n)lcm(1,2,3,\ldots,n) . 思路:计算 lcm(1,2,3,…,n)lcm(1,2,3,\ldots,n) 有这么一个性质:

a novice 990
上一篇: Chosen by god FZU - 2301
下一篇: 单调队列
Re:fused
博客等级 码龄9年 474粉丝 162原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值