POJ1845】的更多相关文章

poj1845 Sumdiv 数学题 令人痛苦van分的数学题! 题意:求a^b的所有约数(包括1和它本身)之和%9901 这怎么做呀!!! 百度:约数和定理,会发现 p1^a1 * p2^a2 * ... * pn^an这个数的约数和是:(1 + p1 + p1^2 + ... + p1^a1) * (1 + p2 + ... + p2^a2) * ... * (1 + pn + ... + pn^an) 证明:由乘法原理可直接证明 然后我们对于a^b运用这个公式即可.那么对于 (1 + pi…
题目链接:https://vjudge.net/problem/POJ-1845 题意:求A的B次方的所有因子(包括1)的和对9901的模. 思路:首先对A利用唯一分解定理得A=p1x1*p2x2*...*pnxn,则A^B=p1B*x1*p2B*x2*...*pnB*xn.且其所有因子的和等于: (1+p11+...+p1B*x1)*(1+p21+...+p2B*x2)*...*(1+pn1+...+pnB*xn). 对其中的1+pi1+...+piB*xi,可以用等比数列的求和公式来计算,即…
题目链接: https://cn.vjudge.net/problem/POJ-1845 题目大意: 求AB的因子和 解题思路: 先将A质因数分解,然后B次方的质因数指数就是乘上B即可 这里要mod9901,但是有除法,而且不一定有逆元,所以用公式: a/b mod m 等价于 a mod (m * b) / b 所以直接求出这个即可 但是mod m*b 这个数字可能很大,就算模上之后再相乘也会溢出,所以应该用有快速加法的快速幂 #include<iostream> #include<c…
POJ1845:http://poj.org/problem?id=1845 思路: AB可以表示成多个质数的幂相乘的形式:AB=(a1n1)*(a2n2)* ...*(amnm) 根据算数基本定理可以得约数之和sum=(1+a1+a12+...+a1n1)*(1+a2+a22+...+a2n2)*...*(1+am+am2+...+amnm) mod 9901 对于每个(1+ai+ai2+...+aini) mod 9901=(ai(ni+1)-1)/(ai-1) mod 9901 (等比数列…
扩展欧几里得是用于求解不定方程.线性同余方程和乘法逆元的常用算法. 下面是代码: function Euclid(a,b:int64;var x,y:int64):int64; var t:int64; begin then begin x:=;y:=;exit(a); end else begin Euclid:=Euclid(b,a mod b,x,y); t:=x;x:=y;y:=t-(a div b)*y; end; end; 下面出现了其中后两个应用.(虽然个人认为不定方程和同余方程可…
题目: POJ1845 分析: 首先用线性筛把\(A\)分解质因数,得到: \[A=p_1^{a_1}*p_2^{a_2}...*p_n^{a_n} (p_i是质数且a_i>0) \] 则显然\(A^B\)分解质因数后为 \[A=p_1^{a_1B}*p_2^{a_2B}...*p_n^{a_nB} (p_i是质数且a_i>0) \] 接下来隆重推出约数和定理:(证明见[知识总结]约数个数定理和约数和定理及其证明) \[Sum=\prod_{i=1}^n \sum_{j=0}^{a_i}p_i…
最近应老延的要求再刷<算法进阶指南>(不得不说这本书不错)...这道题花费了较长时间~(当然也因为我太弱了)所以就写个比较易懂的题解啦~ 原题链接:POJ1845 翻译版题目(其实是AcWing上的): 假设现在有两个自然数A和B,S是AB的所有约数之和. 请你求出S mod 9901的值是多少. 输入格式 在一行中输入用空格隔开的两个整数A和B. 输出格式 输出一个整数,代表S mod 9901的值. 数据范围 0≤A,B≤5×107 输入样例: 2 3 输出样例: 15 注意: A和B不会…
题目问$A^B$的所有因数和. 根据唯一分解定理将A进行因式分解可得:A = p1^a1 * p2^a2 * p3^a3 * pn^an.A^B=p1^(a1*B)*p2^(a2*B)*...*pn^(an*B);A^B的所有约数之和sum=[1+p1+p1^2+...+p1^(a1*B)]*[1+p2+p2^2+...+p2^(a2*B)]*[1+pn+pn^2+...+pn^(an*B)] 知道这个,问题就变成求出A的所有质因数pi以及个数n,然后$\prod(1+p_i+p_i^2+\cd…
//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…
大致题意: 求A^B的所有约数(即因子)之和,并对其取模 9901再输出. 解题思路: 应用定理主要有三个: (1)   整数的唯一分解定理: 任意正整数都有且只有一种方式写出其素因子的乘积表达式. A=(p1^k1)*(p2^k2)*(p3^k3)*....*(pn^kn)   其中pi均为素数 (2)   约数和公式: 对于已经分解的整数A=(p1^k1)*(p2^k2)*(p3^k3)*....*(pn^kn) 有A的所有因子之和为 S = (1+p1+p1^2+p1^3+...p1^k1…