poj1845 数论
//Accepted 204K 16MS //约数和 //n=p1^e1*p2^e2***pk^ek //约数和为:(p1^0+p1^1+..+p1^e1)*(p2^0+p2^1+..+p2^e2)*..(pk^0+pk^1+..pk^ek) //现考虑: S=p1^1+p1^2+..p1^e1 // 令t=e1/2 // if (e1%2==0) // S=(p1^1+p1^2+..+p1^t)+p1^t*(p1^1+p1^2+..+p1^t) // if (e1%2==1) // S=(p1^1+p1^2+..+p1^t)+p1^t*(p1^1+p1^2+..+p1^t)+p1^e1 //由此可递归求解 #include <cstdio> #include <cstring> #include <iostream> using namespace std; ; ; int pri[imax_n]; int cnt; void prime() { cnt=; ;i<imax_n;i++) { for (int j=i*i;j<imax_n;j+=i) pri[j]=; } ;i<imax_n;i++) ) pri[cnt++]=i; } int exp_mod(int a,int b) { ; a=a%pp; while (b) { ) res=res*a%pp; a=a*a%pp; b>>=; } return res; } int getSum(int a,int k) { ) ; ) +a)%pp; ) +a%pp+a%pp*a%pp)%pp; )/-); ==) +)*temp%pp)%pp; )*temp%pp+exp_mod(a,k))%pp; } int split(int n,int m) { ; ; ;i<cnt && (__int64 )pri[i]*pri[i]<=(__int64 )n;i++) { ) { t=; ) { t++; n/=pri[i]; } ans=getSum(pri[i],t*m)*ans%pp; } } ) { ans=getSum(n,m)*ans%pp; } return ans; } int main() { prime(); int a,b; scanf("%d%d",&a,&b); printf("%d\n",split(a,b)); ; }
poj1845 数论的更多相关文章
- POJ1845 数论 二分快速取余
大致题意: 求A^B的所有约数(即因子)之和,并对其取模 9901再输出. 解题思路: 应用定理主要有三个: (1) 整数的唯一分解定理: 任意正整数都有且只有一种方式写出其素因子的乘积表达式. ...
- poj1845 数论 快速幂
Sumdiv Time Limit: 1000MS Memory Limit: 30000K Total Submissions: 16466 Accepted: 4101 Descripti ...
- POJ1845 sumdiv 数论
正解:小学数学数论 解题报告: 传送门! 其实不难但我数学这个方面太菜了所以还是多写点儿博客趴QAQ 然后因为是英文的所以先翻译一下,,,? 大概就是说求AB的所有约数之和,对9901取膜 这个只需要 ...
- 【POJ1845】Sumdiv(数论/约数和定理/等比数列二分求和)
题目: POJ1845 分析: 首先用线性筛把\(A\)分解质因数,得到: \[A=p_1^{a_1}*p_2^{a_2}...*p_n^{a_n} (p_i是质数且a_i>0) \] 则显然\ ...
- POJ1845 Sumdiv [数论,逆元]
题目传送门 Sumdiv Time Limit: 1000MS Memory Limit: 30000K Total Submissions: 26041 Accepted: 6430 Des ...
- 题解 poj1845 Sumdiv (数论) (分治)
传送门 大意:求A^B的所有因子之和,并对其取模 9901再输出 (这题又调了半天,把n和项数弄混了QAQ) 根据算数基本定理:A=(p1^k1)*(p2^k2)*(p3^k3)*...*(pn^kn ...
- 数论知识点总结(noip范围)
数论知识点: 约数个数和约数和公式(例题:POJ1845 分治思想): 质因数分解 p1^k1xp2^k2xp3^k3...pn^kn 约数个数和:(1+k1)(1+k2)...(1+kn) 所有约数 ...
- Codeforces Round #382 Div. 2【数论】
C. Tennis Championship(递推,斐波那契) 题意:n个人比赛,淘汰制,要求进行比赛双方的胜场数之差小于等于1.问冠军最多能打多少场比赛.题解:因为n太大,感觉是个构造.写写小数据, ...
- NOIP2014 uoj20解方程 数论(同余)
又是数论题 Q&A Q:你TM做数论上瘾了吗 A:没办法我数论太差了,得多练(shui)啊 题意 题目描述 已知多项式方程: a0+a1x+a2x^2+..+anx^n=0 求这个方程在[1, ...
随机推荐
- 运行最快的安卓模拟器VirtualBox安装教程
网上有多种多样的安卓模拟器,蓝手指啊,百度的MTC等等,但是他们的运行速度,与电脑的切合度都没有VirtualBox安装Android-X86结合在一起来的快. 工具/原料 电脑一台 网络 方法/步骤 ...
- virtualBox虚拟机安装与主机互访和实现上网配置
1.到官方网下载vitualBox虚拟机,目前最新版本5.0,并安装. https://www.virtualbox.org/ 2.下载安装CentOS系统安装文件 本文采用CentOS-6.5-i3 ...
- table合并单元格colspan和rowspan .
colspan和rowspan这两个属性用于创建特殊的表格. colspan是“column span(跨列)”的缩写.colspan属性用在td标签中,用来指定单元格横向跨越的列数: 在浏览器中将显 ...
- 扒一扒JavaScript 预解释
带var关键字预解释 让我们先看下这段代码执行的结果: 代码如下: alert(n);//弹出undefinedvar n = 10; 弹出的结果是undefined,为何不是10?让我们再看下面这段 ...
- nodeschool.io 2
~~ BABY STEPS ~~ Write a program that accepts one or more numbers as command-line arguments and pr ...
- ubuntu下安装基本配置
安装ubuntu更新: sudo apt-get update sudo apt-get upgrade 安装Docky: sudo add-apt-repository ppa:ricotz/doc ...
- Unity Invoke 方法
Invoke() 方法是 Unity3D 的一种委托机制 如: Invoke("a", 5); 它的意思是:5 秒之后调用 a() 方法: 使用 Invoke() 方法需要注意 ...
- hdu-----(1532)Drainage Ditches(最大流问题)
Drainage Ditches Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) ...
- PowerDesigner生成SQL脚本时,对象带有双引号的问题解决
在pdm查看脚本时,发现表名和字段名带有双引号: 1.create table"cfg_user_card_account" ( 2. "user_card_acco ...
- oracle个人总结
oracle优化原则 1:insert 插入 (1):insert into /*+ append */ NOLOGGING 2: select 查询 (1):/*+ full(v) */ 全表查询 ...