P1593 因子和
新算法:
#define ni 逆元
先质因数分解,
(1+p1^1+p1^2...p1^x)*(1+p2^1+p2^2...p2^x)
然后套等比数列公式就可以了。

 #include<iostream>
#include<cstdio>
#include<queue>
#include<algorithm>
#include<cmath>
#include<ctime>
#include<set>
#define mod 9901
#include<cstring>
#define inf long long_MAX
#define For(i,a,b) for(register long long i=a;i<=b;i++)
#define p(a) putchar(a)
#define g() getchar()
//by war
//2017.10.27
using namespace std;
long long num,b;
struct node
{
long long cnt;
long long p;
}a[];//40M
long long prime[];//40M
long long cnt;
long long tot;
bool vis[];
long long ans; void in(long long &x)
{
long long y=;
char c=g();x=;
while(c<''||c>'')
{
if(c=='-')
y=-;
c=g();
}
while(c<=''&&c>='')x=x*+c-'',c=g();
x*=y;
}
void o(long long x)
{
if(x<)
{
p('-');
x=-x;
}
if(x>)o(x/);
p(x%+'');
} void Euler(long long x)
{
For(i,,x)
{
if(!vis[i])prime[++cnt]=i;
for(register long long j=;j<=cnt&&prime[j]*i<=x;j++)
{
vis[prime[j]*i]=true;
if(i%prime[j]==)
break;
}
}
} void resolve(long long x)
{
For(i,,cnt)
{
if(x%prime[i]==)
{
a[++tot].p=prime[i];
while(x%prime[i]==)
{
a[tot].cnt++;
x/=prime[i];
}
}
}
if(x>)
{
a[++tot].p=x;
a[tot].cnt++;
}
} long long ksm(long long a,long long b)
{
if(b==)
return ;
while(b%==)
{
a=(a*a)%mod;
b>>=;
}
long long r=;
while(b>)
{
if(b%==)
r=(r*a)%mod;
a=(a*a)%mod;
b>>=;
}
return r%mod;
} void exgcd(long long a,long long b,long long &x,long long &y)
{
if(!b)
{
x=;
y=;
return;
}
exgcd(b,a%b,x,y);
long long temp=x;
x=y;
y=temp-(a/b)*y;
} long long series(long long q,long long n)
{
long long fz=ksm(q,n)-;
long long x,y,b;
exgcd(q-,mod,x,y);
long long ni=x;
ni=(ni%mod+mod)%mod;
return (fz*ni%mod+mod)%mod;
} int main()
{
in(num),in(b);
Euler(sqrt(num));
resolve(num);
ans=;
For(i,,tot)
ans=ans*series(a[i].p,a[i].cnt*b+)%mod;
o(ans%mod);
return ;
}

P1593 因子和的更多相关文章

  1. 洛谷P1593 因子和

    题目描述 输入两个正整数a和b,求a^b的因子和.结果太大,只要输出它对9901的余数. 输入输出格式 输入格式: 仅一行,为两个正整数a和b(0≤a,b≤50000000). 输出格式: a^b的因 ...

  2. 洛谷 P1593 因子和

    https://www.luogu.org/problemnew/show/P1593#sub 利用约数和定理:可以去看一下公式第13条 然后这个题目的话,要求$a^b$,那么我们首先可以先将a分解然 ...

  3. luogu P1593 因子和

    不要吐槽博主总做这些数论氵题 首先我们看到这种因数问题,果断质因数分解 所以当前数\(a=p_1^{k_1}*p_2^{k_2}...*p_m^{k_m}\) 可得\(a^b=p_1^{k_1*b}* ...

  4. Uva 11395 Sigma Function (因子和)

    http://acm.hust.edu.cn/vjudge/contest/view.action?cid=109329#problem/C   题目在文末 题意:1~n (n:1~1012)中,因子 ...

  5. LightOj 1098 - A New Function(求1-n所有数的因子和)

    题目链接:http://lightoj.com/volume_showproblem.php?problem=1098 题意:给你一个数n (0 ≤ n ≤ 2 * 109),求n以内所有数的因子和, ...

  6. nylg 小M的因子和

    小M的因子和 时间限制:1000 ms  |  内存限制:65535 KB 难度:2   描述 小M在上课时有些得意忘形,老师想出道题目难住他.小M听说是求因子和,还是非常得意,但是看完题目是求A的B ...

  7. 因子和(luoguP1593)(等比数列求和+逆元)

    输入两个正整数\(a\)和\(b\),求\(a\cdot b\)的因子和.结果太大,只要输出它对9901的余数. Input 仅一行,为两个正整数\(a\)和\(b\)(\(0≤a,b≤5000000 ...

  8. [转]Laplace算子和Laplacian矩阵

    1 Laplace算子的物理意义 Laplace算子的定义为梯度的散度. 在Cartesian坐标系下也可表示为: 或者,它是Hessian矩阵的迹: 以热传导方程为例,因为热流与温度的梯度成正比,那 ...

  9. 七夕节---hdu1215(打表求因子和)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1215 给你一个数n(1<=n<=50w)求n的所有因子和, 由于n的范围比较大,所以要采用 ...

随机推荐

  1. js 判断身份证好是否合法

    function cidInfo(sId){ var info="" //if(!/^\d{17}(\d|x)$/i.test(sId))return false; sId=sId ...

  2. java先导课程学习总结

    经过两个星期四节课的java学习,我也对java这门语言有了一定的认识.刚开始上课的时候,我认为java把C语言中老师所说的模块化编程进行了强调,进行一个类,一个类的编程,在类中构造相应的方法,使用的 ...

  3. mysql 原理 ~ change buffer

    一 简介:今天咱们来聊聊mysql的change buffer二 详细说明   1 +-change Buffer和数据页一样,也是物理页的一个组成部分,数据结构也是一颗B+树,这棵B+树放在共享表空 ...

  4. mysql gtid 第一篇

    GTID1 简介   就是全局事务ID(global transaction identifier )2 构成   uuid+transaction_id 3 格式  7a07cd08-ac1b-11 ...

  5. Android APP常见的5类内存泄露及解决方法

    1.static变量引起的内存泄漏 因为static变量的生命周期是在类加载时开始 类卸载时结束,也就是说static变量是在程序进程死亡时才释放,如果在static变量中 引用了Activity 那 ...

  6. 2018-2019-2 《网络对抗技术》Exp0 Kali安装 Week1 20165320

    下载源 Kali官网 下载安装过程是按照链接博客的操作完成的 虚拟机VMware安装Kali 安装成功截图 安装VM Tools 首先进入虚拟机,默认用户名为root,密码为安装过程中自己设置的. 在 ...

  7. ES系列八、正排索Doc Values和Field Data

    1.Doc Values 聚合使用一个叫Doc Values的数据结构.Doc Values使聚合更快.更高效且内存友好. Doc Values的存在是因为倒排索引只对某些操作是高效的.倒排索引的优势 ...

  8. jquery幻灯片插件之owl.carousel.js

    官网地址:http://owlcarousel2.github.io/OwlCarousel2/ 这个插件兼容各种浏览器,以及移动端 使用方法: 1.下载文件,解压以后,把dist里面的文件放到项目中 ...

  9. Sandcastle方法生成c#.net帮助类帮助文档chm

    Sandcastle方法生成c#.net帮助类帮助文档即chm后缀的文档,其实是通过C#文档注释生成的XML文件来生成帮助文档的.因此,第一步就是生成XML文档, 步骤1生成XML文档 1.打开VS- ...

  10. VSCode配置python调试环境

    VSCode配置python调试环境 很久之前的一个东东,翻出来看看 VSCode配置python调试环境 * 1.下载python解释器 * 2.在VSCode市场中安装Python插件 * 4.在 ...