poj1845 数论
//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^1+p1^2+..+p1^t)+p1^t*(p1^1+p1^2+..+p1^t)+p1^e1
//由此可递归求解
#include <cstdio>
#include <cstring>
#include <iostream>
using namespace std;
;
;
int pri[imax_n];
int cnt;
void prime()
{
cnt=;
;i<imax_n;i++)
{
for (int j=i*i;j<imax_n;j+=i)
pri[j]=;
}
;i<imax_n;i++)
)
pri[cnt++]=i;
}
int exp_mod(int a,int b)
{
;
a=a%pp;
while (b)
{
) res=res*a%pp;
a=a*a%pp;
b>>=;
}
return res;
}
int getSum(int a,int k)
{
) ;
) +a)%pp;
) +a%pp+a%pp*a%pp)%pp;
)/-);
==)
+)*temp%pp)%pp;
)*temp%pp+exp_mod(a,k))%pp;
}
int split(int n,int m)
{
;
;
;i<cnt && (__int64 )pri[i]*pri[i]<=(__int64 )n;i++)
{
)
{
t=;
)
{
t++;
n/=pri[i];
}
ans=getSum(pri[i],t*m)*ans%pp;
}
}
)
{
ans=getSum(n,m)*ans%pp;
}
return ans;
}
int main()
{
prime();
int a,b;
scanf("%d%d",&a,&b);
printf("%d\n",split(a,b));
;
}
poj1845 数论的更多相关文章
- POJ1845 数论 二分快速取余
大致题意: 求A^B的所有约数(即因子)之和,并对其取模 9901再输出. 解题思路: 应用定理主要有三个: (1) 整数的唯一分解定理: 任意正整数都有且只有一种方式写出其素因子的乘积表达式. ...
- poj1845 数论 快速幂
Sumdiv Time Limit: 1000MS Memory Limit: 30000K Total Submissions: 16466 Accepted: 4101 Descripti ...
- POJ1845 sumdiv 数论
正解:小学数学数论 解题报告: 传送门! 其实不难但我数学这个方面太菜了所以还是多写点儿博客趴QAQ 然后因为是英文的所以先翻译一下,,,? 大概就是说求AB的所有约数之和,对9901取膜 这个只需要 ...
- 【POJ1845】Sumdiv(数论/约数和定理/等比数列二分求和)
题目: POJ1845 分析: 首先用线性筛把\(A\)分解质因数,得到: \[A=p_1^{a_1}*p_2^{a_2}...*p_n^{a_n} (p_i是质数且a_i>0) \] 则显然\ ...
- POJ1845 Sumdiv [数论,逆元]
题目传送门 Sumdiv Time Limit: 1000MS Memory Limit: 30000K Total Submissions: 26041 Accepted: 6430 Des ...
- 题解 poj1845 Sumdiv (数论) (分治)
传送门 大意:求A^B的所有因子之和,并对其取模 9901再输出 (这题又调了半天,把n和项数弄混了QAQ) 根据算数基本定理:A=(p1^k1)*(p2^k2)*(p3^k3)*...*(pn^kn ...
- 数论知识点总结(noip范围)
数论知识点: 约数个数和约数和公式(例题:POJ1845 分治思想): 质因数分解 p1^k1xp2^k2xp3^k3...pn^kn 约数个数和:(1+k1)(1+k2)...(1+kn) 所有约数 ...
- Codeforces Round #382 Div. 2【数论】
C. Tennis Championship(递推,斐波那契) 题意:n个人比赛,淘汰制,要求进行比赛双方的胜场数之差小于等于1.问冠军最多能打多少场比赛.题解:因为n太大,感觉是个构造.写写小数据, ...
- NOIP2014 uoj20解方程 数论(同余)
又是数论题 Q&A Q:你TM做数论上瘾了吗 A:没办法我数论太差了,得多练(shui)啊 题意 题目描述 已知多项式方程: a0+a1x+a2x^2+..+anx^n=0 求这个方程在[1, ...
随机推荐
- 关于http响应内容压缩的一点小积累。
1.在tomcat的server.xml配置文件中,添加上背景颜色为绿色的配置,服务器就会自动压缩 <Connector port="80" maxHttpHeaderSiz ...
- 《C#开发微信门户及应用》
C#开发微信门户及应用(40)--使用微信JSAPI实现微信支付功能 C#开发微信门户及应用(39)--使用微信JSSDK实现签到的功能 C#开发微信门户及应用(38)--微信摇一摇红包功能 C#开发 ...
- js时间显示设置
//对日期中部分小于10的数字前边添加0 function zero(s){ return s < 10 ? '0' + s: s; } var date=new Date(), year = ...
- python 练习 20
#!/usr/bin/python # -*- coding: UTF-8 -*- from sys import stdout n = int(raw_input("input numbe ...
- python3.x随手笔记1
语法分析 Python程序读取的 解析器 . 解析器的输入流 令牌 ,生成的 词法分析程序 . 这一章描述了如何 词法分析程序把一个文件分解成令牌. Python读取程序文本作为Unicode代码点; ...
- nodeschool.io 4
~~ MY FIRST ASYNC I/O! ~~ Write a program that uses a single asynchronous filesystem operationto rea ...
- Compound Interest Calculator3.0
Compound Interest Calculator3.0 1.利率这么低,复利计算收益都这么厉害了,如果拿100万元去买年报酬率10%的股票,若一切顺利,过多长时间,100万元就变成200万元呢 ...
- python获取文件时间
import time, os create_time = time.ctime(os.path.getctime(filename)) modify_time = time.ctime(os.pat ...
- c/c++----网站及其后门(CGI应用程序)
C/C++学习到这儿,结合自己曾经学过的javasweb知识,现在让我们来看看,如何做一个CGI程序吧! 首先了解一下啥子叫CGI :CGI全称是“公共网关接口”(Common Gateway In ...
- hdu----(2084)数塔(dp)
数塔 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submissi ...