随笔分类 -  数论

摘要:简述 给你两个数a和b,要求求出a和b的最大公约数。为了解决这个问题,我们可以想到很多方法,穷举法,辗转相除法,更相减损法等。这里我们详解介绍穷举法和辗转相除法。 问题描述 我们把问题用数学语言进行描述:已知整数a和b,求一数k满足a%k==0&&b%k==0,且k要尽可能大。 穷举法 因为k小于等 阅读全文
posted @ 2020-07-29 22:15 艾尔夏尔-Layton 阅读(3342) 评论(0) 推荐(1) 编辑
摘要:题意 给你一个函数,对于每个n和c,求fc(n)%1e9+7的值。 思路 我们观察第一个式子,i从1到x-1和x的gcd,求出来的一定就是x的所有因子,一直递归到x=1,我们可以直到答案一定是c的幂,我们要使这个幂尽可能要大。每递归变成一次gcd会使c的幂加一,也就是说递归得越久,答案就越大,于是我 阅读全文
posted @ 2020-07-25 00:03 艾尔夏尔-Layton 阅读(138) 评论(0) 推荐(0) 编辑
摘要:题意 思路 手动算出n=1,2,3时答案为6,30,140的倒数,用oeis查询得到答案。 但正解是用分部积分: 我们预处理出1e6以内的阶层和逆元,注意逆元可以只处理maxn,然后逆推压复杂度。 AC代码 #include<iostream> using namespace std; typede 阅读全文
posted @ 2020-07-14 14:41 艾尔夏尔-Layton 阅读(155) 评论(0) 推荐(0) 编辑
摘要:题意 给出一个n,要求求出1到n的所有数的约数个数和。 思路过程及代码 如果一个一个数暴力去求,那么复杂度接近n根号n。这里不把暴力的代码给出来。 现在我们考虑每个约数的贡献,约数x对总约数个数和的贡献为n/x,换句话说1到n含约数x的有n/x个,为什么呢?x的倍数的约数自然含x,换句话说现在就是在 阅读全文
posted @ 2020-05-17 15:30 艾尔夏尔-Layton 阅读(778) 评论(0) 推荐(0) 编辑
摘要:传送门:https://codeforces.ml/problemset/problem/235/A 题意: 给你一个数字n,要求在n以内找到三个数,使它们的lcm最大,输出最大的lcm。 思路: lcm(n,m)=n*m/gcd(n,m),我们还能知道一个小定理那就是设lcm(n,m)=k则k一定 阅读全文
posted @ 2020-03-21 20:39 艾尔夏尔-Layton 阅读(166) 评论(0) 推荐(0) 编辑
摘要:传送门:https://codeforces.ml/problemset/problem/735/D 题意: 当你的收入是x时,你要交x最大的因子(除了x)的数额的税,现在你有一个数字n,试图把n分成几部分收入,每一部分都要交税,试图让总税收最小。 科普: 哥德巴赫猜想——任一大于2的偶数都可写成两 阅读全文
posted @ 2020-03-19 18:03 艾尔夏尔-Layton 阅读(204) 评论(0) 推荐(0) 编辑
摘要:质数筛 暴力版 从2到根号x扫一遍,如果要求出区间的素数标记数组,复杂度就爆表。 bool isprime(int x){//是不是质数 if(x==1) return 0; for(int i=2;i*i<=x;i++){ if(x%i==0) return 0; } return 1; } 埃拉 阅读全文
posted @ 2019-05-06 19:31 艾尔夏尔-Layton 阅读(333) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示