nyist 小M的因子和 (A^B的因子和)
来源:互联网 发布:汽车零部件数据库 编辑:程序博客网 时间:2024/05/17 07:34
小M的因子和
时间限制:1000 ms | 内存限制:65535 KB
难度:2
- 描述
小M在上课时有些得意忘形,老师想出道题目难住他。小M听说是求因子和,还是非常得意,但是看完题目是求A的B次方的因子和,有些手足无措了,你能解决这个问题吗?
- 输入
- 有多组测试样例
每行两个数 A ,B ,(1≤A,B≤10^9) - 输出
- 输出A的B次方的因子和,并对9901取余。
- 样例输入
2 3
- 样例输出
15
A^B素因子和 将A分解A^B=p1^(k1*B)+p2^(k2*B)+....+pn^(kn*B)
#include <iostream>#include <stdio.h>using namespace std;int p[10010],k[10010],num;void syz ( int a )// 分解质因数素因子及其个数{ int i,ans=a; num=0; for(i=2; i*i<=a; i++) { if(ans%i==0) { p[num]=i; k[num]=0; while(ans%i==0) { ans/=i; k[num]++; } num++; } } //cout<<"ans="<<ans<<endl; if(ans!=1) { //cout<<"num="<<num<<endl; p[num]=ans; k[num]=1; num++; }// cout<<"num ="<<num<<endl;// for(i=0;i<num;i++)// cout<<i <<" " << p[i]<<" "<<k[i]<<endl;}int fastpow ( int a,int b)//快速幂{ int p= 9901; int ans=1; a=a%p; while( b ) { if(b&1) ans=ans*a%p; a=a*a%p; b>>=1; } //cout<<"ans="<<ans<<endl; return ans;}int sum_(int a,int n)//等比数列二分(分治)求和{ if(n==0) return 1; if(n&1) return sum_(a,n/2)*(fastpow(a,(n/2+1))+1)%9901; else return (sum_(a,n/2-1)*(fastpow(a,n/2)+1)+fastpow(a,n))%9901;}int main(){//freopen("Input.txt","r",stdin); // freopen("aaa.txt","w",stdout); int A , B ,w[10010] ,i,ans; while( cin >> A >> B) { syz(A); for(i=0; i<num; i++) { k[i]=k[i]*B; // cout<<"k[i]= "<<k[i]<<endl; } for(i=0; i<num; i++) { w[i]=sum_(p[i],k[i]); } ans=1; for(i=0; i<num; i++) ans=(ans*w[i])%9901; cout<<ans<<endl; } return 0;}
0 0
- nyist 小M的因子和 (A^B的因子和)
- poj-1845 Sumdiv && nyoj - 928 小M的因子和
- NYOJ 928 小M的因子和(数论)
- POJ1845——A的B次方的因子和
- POJ1845 A^B的因子和mod 9901
- poj1845 A^B 的因子和 (逆元)
- poj_1845_求所有a^b的所有因子和
- nyist 因子和 (素数)
- nyist 509 因子和阶乘
- N的因子和
- 因子和的计算方法
- 数字的因子和
- A^B所有因子和(poj1845 Sumdiv)
- 因子和因子个数
- 所有因子的因子个数的立方和
- POJ2992 Divisors 因子和因子个数的应用
- pku 2992 因子和因子个数的应用
- 因子和与因子个数的应用(一)
- ASIHttpRequest框架使用
- spring3 乱码问题解决
- 在头文件声明全局变量和创建extern
- UVa 1531 - Problem Bee
- Request的getParameter和getAttribute方法的区别
- nyist 小M的因子和 (A^B的因子和)
- javaEE java web 区别
- 数据结构 成绩表的ADT
- 用R进行微博分析的初步尝试
- 软件测试培训笔记
- stm32 USART 串口通信[操作寄存器+库函数]
- 最长递增和递减子序列详解(longest increasing subsequence)
- 简单的数学分析题
- vim插件使用 c.vim