[Project Euler 429] Sum of squares of unitary divisors(数论)
题目链接:https://projecteuler.net/problem=429
题目:
我们称 N 的约数 d 为特殊的当且仅当 gcd(d, n / d) = 1.
设 S(n) 为 n 所有特殊的约数的平方和. 现在给定 N, 求 S(N!) 模 1e7 + 9.
题解:
第二行的"所以 S(n2) "改成"所以 S(n!)"
代码如下:
#include<algorithm>
#include<cstring>
#include<cstdio>
#include<iostream>
using namespace std;
typedef long long ll; const int N=1e8+;
const int mod=1e9+;
ll n,tot,ans;
ll prime[N],vis[N];
void get_prime()
{
for (ll i=;i<=n;i++)
{
if (!vis[i]) prime[++tot]=i;
for (ll j=;j<=tot&&prime[j]*i<=n;j++)
{
vis[prime[j]*i]=;
if (i%prime[j]==) break;
}
}
}
ll mul(ll a,ll b)
{
ll res=;
for (;b;b>>=,a=(a+a)%mod) if (b&) res=(res+a)%mod;
return res;
}
ll qpow(ll a,ll b)
{
ll res=;
for (;b;b>>=,a=mul(a,a)%mod) if (b&) res=res*a%mod;
return res;
}
ll solve(ll a,ll b)
{
ll res=;
while (a)
{
a/=b;
res+=a;
}
return res;
}
int main()
{
//scanf("%lld",&n);
n=1e8;
ans=;
get_prime();
for (ll i=;i<=n;i++)
{
if (!vis[i])
{
ll power=solve(n,i);
ans=1ll*ans*(qpow(i,power*)+)%mod;
}
}
printf("%lld",ans);
return ;
}
本博客内容转自http://www.cnblogs.com/LzyRapx/p/8280943.html
[Project Euler 429] Sum of squares of unitary divisors(数论)的更多相关文章
- Project Euler 98:Anagramic squares 重排平方数
Anagramic squares By replacing each of the letters in the word CARE with 1, 2, 9, and 6 respectively ...
- Project Euler 44: Find the smallest pair of pentagonal numbers whose sum and difference is pentagonal.
In Problem 42 we dealt with triangular problems, in Problem 44 of Project Euler we deal with pentago ...
- Python练习题 034:Project Euler 006:和平方与平方和之差
本题来自 Project Euler 第6题:https://projecteuler.net/problem=6 # Project Euler: Problem 6: Sum square dif ...
- Python练习题 029:Project Euler 001:3和5的倍数
开始做 Project Euler 的练习题.网站上总共有565题,真是个大题库啊! # Project Euler, Problem 1: Multiples of 3 and 5 # If we ...
- Project Euler 第一题效率分析
Project Euler: 欧拉计划是一系列挑战数学或者计算机编程问题,解决这些问题需要的不仅仅是数学功底. 启动这一项目的目的在于,为乐于探索的人提供一个钻研其他领域并且学习新知识的平台,将这一平 ...
- Python练习题 048:Project Euler 021:10000以内所有亲和数之和
本题来自 Project Euler 第21题:https://projecteuler.net/problem=21 ''' Project Euler: Problem 21: Amicable ...
- Python练习题 047:Project Euler 020:阶乘结果各数字之和
本题来自 Project Euler 第20题:https://projecteuler.net/problem=20 ''' Project Euler: Problem 20: Factorial ...
- Python练习题 045:Project Euler 017:数字英文表达的字符数累加
本题来自 Project Euler 第17题:https://projecteuler.net/problem=17 ''' Project Euler 17: Number letter coun ...
- Python练习题 044:Project Euler 016:乘方结果各个数值之和
本题来自 Project Euler 第16题:https://projecteuler.net/problem=16 ''' Project Euler 16: Power digit sum 2* ...
随机推荐
- Android BLE与终端通信(三)——client与服务端通信过程以及实现数据通信
Android BLE与终端通信(三)--client与服务端通信过程以及实现数据通信 前面的终究仅仅是小知识点.上不了台面,也仅仅能算是起到一个科普的作用.而同步到实际的开发上去,今天就来延续前两篇 ...
- 数组溢界地址的正确使用: 即 int a[6] 中的 a[-1] 和 a[6] 正确使用
正如大家所知道的那样: 数组 int a[6] , 编译器阅读到这句数组定义,会为分配6个int 类型的地址:a[0] a[1] a[2] a[3] a[4] a[5].我们 能够正 ...
- html页面的简单对话框(alert, confirm, prompt)
html页面简单的三种对话框例如以下: 1.alert(),最简单的提示框: alert("你好!"); 2.confirm(),有确认和取消两个button: if(confir ...
- CNN tflearn处理mnist图像识别代码解说——conv_2d参数解释,整个网络的训练,主要就是为了学那个卷积核啊。
官方参数解释: Convolution 2D tflearn.layers.conv.conv_2d (incoming, nb_filter, filter_size, strides=1, pad ...
- MyBatis数据持久化(三)增删改查
上篇文章中我们使用mybatis成功建立数据库会话,并从表中查询出相应的数据,本文在此基础上介绍MyBatis另外几种操作,即插入.修改.删除记录. 1.修改User.xml文件,增加几条sql语句: ...
- 你不知道的JavaScript(五)内置对象模版
尽管JavaScript中有对象的概念,但一般我们并不说JavaScript是面向对象的编程语言,因为它不具备面向对象的一些最基本特征. 在c++/Java等这些面向对象的编程语言中,我们要定义一个对 ...
- 51nod 1268 和为K的组合 dfs
题目: 1268 和为K的组合 基准时间限制:1 秒 空间限制:131072 KB 分值: 20 难度:3级算法题 给出N个正整数组成的数组A,求能否从中选出若干个,使他们的和为K.如果可以,输出:& ...
- MySQL学习(五)——使用JDBC完成用户表CRUD的操作
通过案例我们发现“获得连接”和“释放资源”两次代码将在之后的增删改查所有功能中都存在,开发中遇到此种情况,将采用工具类的方法进行抽取,从而达到代码的重复利用. 1.使用properties配置文件 开 ...
- MySQL学习(三)——Java连接MySQL数据库
1.什么是JDBC? JDBC(Java DataBase Connectivity)就是Java数据库连接,说白了就是用Java语言来操作数据库.原来我们操作数据库是在控制台使用SQL语句来操作数据 ...
- hiho 1571 - 贪心好题*
题目链接 小Hi在帮助钢铁侠开发新的盔甲.这套新盔甲一共包含M种武器插槽,其中第i种插槽有Ci个.每个插槽最多安装一个武器模块. 小Hi一共准备了N个武器模块,编号1~N.每个武器模块都有三个参数Vi ...