poj 1845(等比数列前n项和及高速幂)
| Time Limit: 1000MS | Memory Limit: 30000K | |
| Total Submissions: 13959 | Accepted: 3433 |
Description
Input
Output
Sample Input
2 3
Sample Output
15
Hint
The natural divisors of 8 are: 1,2,4,8. Their sum is 15.
15 modulo 9901 is 15 (that should be output).
Source
思路看:
http://hi.baidu.com/necsinmyway/item/9f10b6d96c5068fbb2f77740
AC代码:
#include<iostream>
using namespace std;
#define LL long long
LL pow_mod(LL a,LL n,int mod){ //高速幂
LL r=1;
LL base=a;
while(n){
if(n&1)
r=r*base%mod;
base=base*base%mod;
n>>=1;
}
return r%9901;
}
LL sum(LL a,LL b,LL mod){ //二分求等比数列前N项和
if(b==0)
return 1;
if(b%2==1)
return (sum(a,b/2,mod)*(pow_mod(a,b/2+1,mod)+1))%mod;
else
return (sum(a,b-1,mod)+pow_mod(a,b,mod))%mod;
}
int main(){
LL a,b;
LL ans;
while(cin>>a>>b){
ans=1;
for(LL i=2;i*i<=a;i++){ //将a分解为质数的乘积
if(a%i==0){
LL s=0;
while(a%i==0){
s++;
a/=i;
}
ans=ans*sum(i%9901,b*s,9901)%9901;
}
}
if(a>=2){
ans=ans*sum(a%9901,b,9901)%9901;
}
cout<<ans<<endl;
}
return 0;
}
poj 1845(等比数列前n项和及高速幂)的更多相关文章
- 【POJ 1845】 Sumdiv (整数唯分+约数和公式+二分等比数列前n项和+同余)
[POJ 1845] Sumdiv 用的东西挺全 最主要通过这个题学了约数和公式跟二分求等比数列前n项和 另一种小优化的整数拆分 整数的唯一分解定理: 随意正整数都有且仅仅有一种方式写出其素因子的乘 ...
- C - Reading comprehension 二分法 求等比数列前N项和
Read the program below carefully then answer the question. #pragma comment(linker, "/STACK:1024 ...
- poj 3735 大数量反复操作问题(矩阵高速幂)
题意:一个一维数组,3种操作: a: 第i个数+1,b: 第i个数=0 ,c::交换某俩处的数. 由三种基本操作构成一组序列,反复该序列m次(m<10^9),问结果 属于一种综合操作反复型: ...
- poj 3233 Matrix Power Series(矩阵二分,高速幂)
Matrix Power Series Time Limit: 3000MS Memory Limit: 131072K Total Submissions: 15739 Accepted: ...
- POJ 2478 Farey Sequence(欧拉函数前n项和)
A - Farey Sequence Time Limit:1000MS Memory Limit:65536KB 64bit IO Format:%I64d & %I64u ...
- poj 1845 【数论:逆元,二分(乘法),拓展欧几里得,费马小定理】
POJ 1845 题意不说了,网上一大堆.此题做了一天,必须要整理一下了. 刚开始用费马小定理做,WA.(poj敢说我代码WA???)(以下代码其实都不严谨,按照数据要求A是可以等于0的,那么结果自然 ...
- 数列的前$n$项和$S_n$的求法
相关公式 ①等差数列的\(S_n=\cfrac{n(a_1+a_n)}{2}=na_1+\cfrac{n(n-1)\cdot d}{2}\) ②等比数列的\(S_n=\left\{\begin{arr ...
- 求等差数列前$n$项和$S_n$的最值
一.方法依据: 已知数列\(\{a_n\}\)是等差数列,首项为\(a_1\),公差为\(d\),前\(n\)项和为\(S_n\),则求\(S_n\)的最值常用方法有两种: (1).函数法:由于\(S ...
- 数列前n项和
等差数列 等比数列 常见的前n项和
随机推荐
- arp spoofing
Today our tutorial will talk about Kali Linux Man in the Middle Attack. How to perform man in the mi ...
- Ruby on Rails vs. PHP vs. Python
开发者在开发web应用时,往往会对平台的选择感到困惑,而web专家通常会建议:要考虑几个因素,这些因素包括周转时间.质量.跨浏览器兼容性.与其他框架的整合.数据安全性.易于访问性等. 在考虑了这些因素 ...
- jquerymobile,手机端click无效
1.直接把<script>放到html代码后面,不要放到@section里面. 2.使用代理.如下所示: <script type="text/javascript&quo ...
- Sql group by 分组取时间最新的一条数据
with MiPriceTopOne as (select classid,max(dataTime) dataTime,max(id) as id from MiPrice group by cla ...
- openstack 基本配置
- Spark的优点
Spark的一站式解决方案,非常之具有吸引力,毕竟啊,任何公司都想用统一的平台去处理遇到的问题,减少开发和维护的人力成本和部署平台的物力成本. 当然,Spark并没有以牺牲性能为代价.相反,在性能方面 ...
- svn's diff command
[svn's diff command] svn diff 比较的是版本快照, 跟merge的应用diff完全不一样. 缺省情况下,svn diff忽略文件的祖先,只会比较两个文件的内容.如果你使用- ...
- 理解js闭包(二)
@(编程) 一.什么是闭包? 官方"的解释是:闭包是一个拥有许多变量和绑定了这些变量的环境的表达式(通常是一个函数),因而这些变量也是该表达式的一部分. 相信很少有人能直接看懂这句话,因为他 ...
- 使用SQLCOMMAND以及SQLADAPERT 调用存储过程
使用SQLCommand调用的基本方法如下: SqlCommand comm = new SqlCommand("P_GetCompanyInfo", conn); comm.Co ...
- .java 文件中只能定义一个public class 且与文件名相同