[nowcoder]因数个数和】的更多相关文章

链接:https://www.nowcoder.com/acm/contest/158/A 考虑每个数对答案的贡献,所以答案就是$\sum_{i=1}^{n}{\lfloor\frac{n}{i}\rfloor}$ 整除分块搞起来 代码: #include<iostream> #include<cstdio> #include<cstring> #define ll long long using namespace std; int q; ll n,ans; int…
q次询问,每次给一个x,问1到x的因数个数的和. #include<cmath> #include<cstdio> #include<cstring> usingnamespacestd; typedef longlong ll; intmain() { intq; scanf("%d", &q); while(q--) { intx; scanf("%d", &x); ll ans=; intt=sqrt(x+)…
只会搬运YL巨巨的博客 积性函数 定义 积性函数:对于任意互质的整数a和b有性质f(ab)=f(a)f(b)的数论函数. 完全积性函数:对于任意整数a和b有性质f(ab)=f(a)f(b)的数论函数 性质 两个积性函数的狄利克雷卷积仍为积性函数. 若积性函数满足 \(f(n^p)=f^p(n)\)则它一定是完全积性函数.因为一个数可以唯一分解,则它一定可以表示成质数相乘的形式:因为他时积性函数所以,\(f(\prod_{i=1}^{n}p_i)=\prod _{i=1}^{n}f(p_i)\),…
题意: q次询问,每次给一个x,问1到x的因数个数的和. 1<=q<=10 ,1<= x<=10^9 1s 思路: 对1~n中的每个数i,i作为i,2i,3i,...的约数,一共作为n/i个数的约数 于是题目就转化为求$\displaystyle \sum_{i=1}^n\lfloor \frac{n}{i}\rfloor$ 数论分块$O(\displaystyle \sqrt{n})$解决 代码: #include<iostream> #include<cstd…
题目地址:https://www.nowcoder.com/acm/contest/158/A 参考博客:https://blog.csdn.net/zzcblogs/article/details/78816533 1~n 约数的个数的和实际就是看 1~n 在这些数中出现过多少次,例如 1是1~n每个数的因数,所以对1这个因数来说,出现了n/1次,以此类推: 发现答案 1/n+2/n+3/n+……+n/n 其实就是函数 y=1/x 在1~n 上的离散和,因为函数关于直线 y=x 对称,求 1~…
我们有可能在某些数学题中会求到某个数的因数和,那我们怎么求呢? 因为我们知道任意一个合数都可以由两个或多个质数相乘得到,那么我们就先分解质因数吧 例:我们随便去一个数吧,嗯,就108了,好算... 我们将108质因数分解:2*2*3*3*3   也就是:2^2 * 3^3 我们可以看到108的因数有2^0*3^0,2^0*3^1,2^1*3^0,2^1*3^1... 我们可以把他的分配原则画一下                                         108的质因数   …
题目链接:https://cn.vjudge.net/problem/ 题意 找一个最小的正整数n 使得n!有a个零 思路 就是有几个因数10呗 考虑到10==2*5,也就是说找n!因数5有几个 数据量略大(N<=1e8),打表之类的O(N)算法是直接不可以 分析到这里,可能的算法也就是二分了 找了找很久规律,发现可以有O(log5(n))的方法确定n!的因数5的个数 于是有二分 代码 // binary search // [f(m)<n, f(m)=n, f(m)>n] // [l,…
题目描述 求不定方程 \(\frac {1}{x} + \frac{1}{y} = \frac{1}{n!}\)的正整数解的个数 \(n \leq 100^6\) Solution 化简得 \(x * n! + y * n! = x * y\) \(x * y - x * n! - y *n! +(n!)^2 = (n!)^2\) \((x - n!)(y - n!) = (n!)^2\) 以上,我们可以看出,所求正整数解的个数其实就是\((n!)^2\)的约数的个数. 这个当然可以暴力求,但是…
https://nanti.jisuanke.com/t/A1413 AC代码 #include <cstdio> #include <cstring> #include <cmath> #include <ctime> #include <iostream> #include <algorithm> #include <map> using namespace std; typedef long long ll; ;//…
题目链接https://www.nowcoder.com/acm/contest/158/A 无语...这题很迷啊,原谅我的菜,刚开始想用预处理欧拉筛和前缀和,可是这题太血崩了,这样一样要遍历,1-e9的范围,后来翻网上题解,发现其实是个还算经典的问题 这题可以用离散和做嘛,如何离散和???先别着急,我们先想想,为啥这题不用欧拉函数做... 我们平时欧拉函数的题,都还能算比较难的题了,这题不仅仅加大了范围,还要求1-n的因数个数,我们只有另寻其它方法 我们不如写出1-10的因数组成(比赛一定要动…