题目链接:

https://projecteuler.net/problem=429

题目:

A unitary divisor \(d\) of a number \(n\) is a divisor of \(n\) that has the property \(gcd(d, n/d) = 1\).

The unitary divisors of \(4! = 24\) are \(1, 3, 8\) and \(24\).

The sum of their squares is \(1^2 + 3^2 + 8^2 + 24^2 = 650\).

Let \(S(n)\) represent the sum of the squares of the unitary divisors of \(n\). Thus \(S(4!)=650\).

Find \(S(100 000 000!)\) modulo \(1 000 000 009\).

题解:

因为:\(n! = p_1^{a_1}p_2^{a_2}p_3^{a_3} \cdots p_k^{a_k}\)

所以:\(S(n!) = S(p_1^{a_1}p_2^{a_2}p_3^{a_3} \cdots p_k^{a_k}) = S(p_1^{a_1})*S(p_2^{a_2})*\cdots*S(p_k^{a_k})\)

\(=\displaystyle \prod_{i=1}^k (p_i^{2a_i}+1)\)

其实,unitary divisor 就是 \(1, p_1^{a_1}, p_2^{a_2}, p_3^{a_3}, \cdots p_k^{a_k}\)

比如: \((1 + a)(1 + b)(1 + c) = 1 + a + b + c + ab + ac + bc + abc\)

所以,他们的和就是 \(\displaystyle \prod_{i=1}^k (p_i^{a_i}+1)\)。

同理,它们的平方和就是 \(\displaystyle \prod_{i=1}^k (p_i^{2a_i}+1) = \displaystyle \prod_{i=1}^k ((p_i^{a_i})^{2}+1)\)

其中,\(\displaystyle a_i =\sum_{j=1}^{ n } \left\lfloor \frac{n}{p_i^j} \right\rfloor\)

代码:

#include <bits/stdc++.h>using namespace std;
typedef long long ll;
const int maxn = 1e8;
const int mod =1e9+9;ll qpower(ll a,ll b,ll mod)
{long long ans=1;while(b>0){if(b&1)ans=(ans*a)%mod;b>>=1;a=(a*a)%mod;}return ans;
}ll solve(ll i,ll n)
{ll res = 0;while (n) {n /= i;res += n;}
//  std::cout << "res=" << res << '\n';return res;
}ll cal(ll a)
{return (1LL + a * a) % mod;
}int main(int argc, char const *argv[]) {ll ans = 1;std::vector<ll> isprime(1e8+123,1);isprime[0] = 0;isprime[1] = 0;isprime[2] = 1;for(int i=2;i<maxn;i++) {if(isprime[i]) {for(int j= i+i;j<maxn;j+=i) {isprime[j] = 0;}}}
//  std::cout << "init finish" << '\n';for(ll i=2;i<maxn;i++) {//  if(i%10000000==0)std::cout << "ok" << '\n';if(isprime[i]) {ll power = solve(i,maxn);ans = 1LL * ans * cal( qpower(i,power,mod) ) % mod;}}std::cout << ans << '\n';cerr << "Time elapsed: " << 1.0 * clock() / CLOCKS_PER_SEC << " s.\n";return 0;
}

转载于:https://www.cnblogs.com/LzyRapx/p/8280943.html

Project Euler 429 Sum of squares of unitary divisors(数论)相关推荐

  1. [Project Euler 429] Sum of squares of unitary divisors(数论)

    题目链接:https://projecteuler.net/problem=429 题目: 我们称 N 的约数 d 为特殊的当且仅当 gcd(d, n / d) = 1. 设 S(n) 为 n 所有特 ...

  2. Project Euler

    最近发现了一个很有趣的网站,Project Euler 上面全是数学题,不过大多需要用编程解决 Problem 3: 求:600851475143的最大素因子. 解:编了个程序,迅速水过,看官方的题解 ...

  3. Project Euler in Java [001-040]

    目录:英语原题见代码注释 001_三或五的倍数 002_偶斐波那契数 003_最大质因数 004_最大乘积回文数 005_最小公倍数 006_"和的平方"与"平方的和&q ...

  4. Project Euler.59.yyt

    Project Euler.59.yyt XOR 题目链接:http://pe-cn.github.io/59/ 解题思路: 题目中提到秘钥是由三个小写字母组成,因此可以选取一定长度的密文进行爆破. ...

  5. Project Euler 182.yyt

    Project Euler 182.yyt 暑假作业解题记录:第182题,RSA加密 数论知识基础 python 目录 Project Euler 182.yyt 目录 数论基础和RSA加密 代码 数 ...

  6. 欧拉计划 Project Euler 50-56

    Project Euler 50-56 Project Euler: https://projecteuler.net/ Project Euler | 欧拉计划: https://pe-cn.git ...

  7. 【AlgorithmTraining】03:Project Euler 03

    Project Euler 03 OVERVIEW Project Euler 03 1.E22:Name score 2.E32:Pandigital products 3.E33:Digit ca ...

  8. R语言层次聚类:通过内平方和(Within Sum of Squares, WSS)选择最优的聚类K值、以内平方和(WSS)和K的关系并通过弯头法(elbow method)获得最优的聚类个数

    通过内平方和(Within Sum of Squares, WSS)选择最佳的聚类K值.以内平方和(WSS)和K的关系并通过弯头法(elbow method)获得最佳的聚类个数 目录

  9. 硬币游戏 Project Euler 232

    原帖:http://hi.baidu.com/atyuwen/blog/item/160bd024531e3034c995591d.html Project Euler上最近的题目都还比较意思,来看看 ...

最新文章

  1. HMM与条件随机场区别 转
  2. c莫比乌斯函数_代佳璇缘起一条莫比乌斯环,我爱上了难缠的数学!
  3. Linux Kernel 5.10 aarch64体系对TTBR寄存器的设置
  4. C语言中for语句的执行过程是什么?
  5. reactor p java_Java反应式框架Reactor中的Mono和Flux
  6. CVPR 2019 | Adobe提出新型超分辨率方法:用神经网络迁移参照图像纹理
  7. tornado基本使用一
  8. 5w1h,人机料法环
  9. Parallel()
  10. 让机器耳濡目染:MIT提出跨模态机器学习模型
  11. docker的安装和部署
  12. 2分钟实战QQ机器人教程(保姆级)手把手教你极速开发
  13. PHP头条爬虫,今日头条爬虫分析-爬取用户发的所有内容
  14. Excel查找匹配VLOOKUP用法
  15. oracle 批量列转行,oracle 批量列转行 逗号分隔
  16. 华为称鸿蒙系统支持第三方手机,“开源开放毫无保留”,欢迎厂商使用
  17. yolov5 教学入门使用
  18. antd 源码解读 notification
  19. PAT乙级1005,用C语言进行编程,继续卡拉兹猜想
  20. KRPANO资源分析工具

热门文章

  1. IDEA中Mapper映射XML文件修改背景框颜色
  2. 先进制造技术的出现正急剧改变着制造业的产品结构和生产过程
  3. transmac软件使用指南
  4. 杀毒软件被病毒关掉的解决办法
  5. JS_腾讯地图通过地址解析经纬度,uni-app可用
  6. python中dpi_python – matplotlib,savefig:忽略DPI设置
  7. python绘制太阳系模型_【循序渐进学图形学之】OpenGL绘制太阳系模型
  8. Python 获取图片上点的坐标
  9. PAJ7620U2+蓝牙主从机实现远程手势控制
  10. 多线程计算数据,然后合并数据