poj_1845: Sumdiv
先将A^B分解质因数,可以通过先分解A,再把对应的幂次*B。之后用下面这个式子求解就可以了

#include<vector>
#include<iostream>
using namespace std;
typedef long long LL; const int mod=;
const int N=1e4+; LL A,B;
bool not_prime[N+];
vector<int> prime; void init()
{
for(int i=;i<N;i++)
{
if(!not_prime[i])
{
prime.push_back(i);
for(int j=i*i;j<N;j+=i)
not_prime[j]=true;
}
}
} LL qpow(LL x,LL n)
{
LL ret=;
for(;n;n>>=)
{
if(n&) ret=ret*x%mod;
x=x*x%mod;
}
return ret;
} LL sum(LL q,LL n) //求首项为1,公比为q 的等比数列的前n项和
{
if(n==) return ;
LL ret=;
LL ls=sum(q,n/);
LL rs=ls*qpow(q,n/)%mod;
ret=(ls+rs)%mod;
if(n&) ret=(ret+qpow(q,n-))%mod;
return ret;
} LL cal(LL A,LL B)
{
LL ret=;
for(int i=;prime[i]*prime[i]<=A&&i<prime.size();i++)
{
if(A%prime[i]==)
{
int cnt=;
while(A%prime[i]==) cnt++,A/=prime[i];
ret=ret*sum(prime[i],cnt*B+)%mod;
}
}
if(A>) ret=ret*sum(A,B+)%mod;
return ret;
} int main()
{
init();
while(cin>>A>>B)
cout<<cal(A,B)<<endl;
}
poj_1845: Sumdiv的更多相关文章
- POJ 1845 Sumdiv
快速幂+等比数列求和.... Sumdiv Time Limit: 1000MS Memory Limit: 30000K Total Submissions: 12599 Accepted: 305 ...
- Sumdiv(快速幂+约数和)
Sumdiv Time Limit: 1000MS Memory Limit: 30000K Total Submissions: 16244 Accepted: 4044 Description C ...
- poj 1845 Sumdiv 约数和定理
Sumdiv 题目连接: http://poj.org/problem?id=1845 Description Consider two natural numbers A and B. Let S ...
- Sumdiv 等比数列求和
Sumdiv Sumdiv Time Limit: 1000MS Memory Limit: 30000K Total Submissions: 15364 Accepted: 3790 De ...
- poj 1845 POJ 1845 Sumdiv 数学模板
筛选法+求一个整数的分解+快速模幂运算+递归求计算1+p+p^2+````+p^nPOJ 1845 Sumdiv求A^B的所有约数之和%9901 */#include<stdio.h>#i ...
- 『sumdiv 数学推导 分治』
sumdiv(POJ 1845) Description 给定两个自然数A和B,S为A^B的所有正整数约数和,编程输出S mod 9901的结果. Input Format 只有一行,两个用空格隔开的 ...
- POJ 1845 Sumdiv(逆元)
题目链接:Sumdiv 题意:给定两个自然数A,B,定义S为A^B所有的自然因子的和,求出S mod 9901的值. 题解:了解下以下知识点 1.整数的唯一分解定理 任意正整数都有且只有唯一的方式 ...
- poj1845 Sumdiv
poj1845 Sumdiv 数学题 令人痛苦van分的数学题! 题意:求a^b的所有约数(包括1和它本身)之和%9901 这怎么做呀!!! 百度:约数和定理,会发现 p1^a1 * p2^a2 * ...
- 一本通1633【例 3】Sumdiv
1633:[例 3]Sumdiv 时间限制: 1000 ms 内存限制: 524288 KB [题目描述] 原题来自:Romania OI 2002 求 ABAB 的所有约数之和 mo ...
随机推荐
- angularJS ng-change错误的解决方案
导入文件:<script src="../../js/angular/angular-file-upload/angular-file-upload.js"></ ...
- Spring学习(20)--- Schema-based AOP(基于配置的AOP实现) -- 配置切入点pointcut
pointcut(切断点)表达式: execution(public * *(..)) execution(* set*(..)) execution(* com.xyz.service.Accoun ...
- 假如时光倒流,我会这样学习Java
回头看看, 我进入Java 领域已经快15个年头了, 虽然学的也一般, 但是分享下我的心得,估计也能帮大家少走点弯路. [入门] 我在2001年之前是C/C++阵营, 有C和面向对象的基础, 后来转到 ...
- [转]Java多线程学习(吐血超详细总结)
转自:http://www.mamicode.com/info-detail-517008.html 本文主要讲了Java中多线程的使用方法.线程同步.线程数据传递.线程状态及相应的一些线程函数用法. ...
- html中p标签行间距的问题
使用CSS行高样式line-height可以设置调整p行间距,但是同时会影响每行文字间的上下间距,所以使用line-height虽然可以用来设置html p 行距离间隔,但是不是很实用,一般line- ...
- angular.js小知识总结
angular-watch.html 代码如下: <script> var app = angular.module('app',[]); app.controller('ctrl',fu ...
- dos命令窗口修改编码,CMD编码修改方法
dos命令窗口修改编码,CMD编码修改方法 第一步,打开命令窗口有两种方法第一种:可以点击左下角的开始按钮,在运行里面输入CMD,然后敲回车2第二种:组合键WIN+R键,组合键后就会弹出窗口,然后输入 ...
- IOS 固定定位底部input输入框,获取焦点时弹出的输入法键盘挡住input
移动页面经常会做到这样一个效果,看下面的图片,重点就是那个固定定位的底部,里面有个input输入框,在输入字符的时候,安卓手机看着是完全没有问题! 1.页面没有点击底部input的初始状态 2.安卓手 ...
- LaTeX初识 新手入门 Texlive和Texmaker学习
转载自:http://blog.sina.com.cn/s/blog_90444ed201016iq6.html http://blog.csdn.net/zb1165048017/article/d ...
- 【Android Developers Training】 49. 轻松录制视频
注:本文翻译自Google官方的Android Developers Training文档,译者技术一般,由于喜爱安卓而产生了翻译的念头,纯属个人兴趣爱好. 原文链接:http://developer ...