唯一分解,逆元,正约数个数和正约数和,欧拉筛
唯一分解,上次写的是需要欧拉筛的,这次写了一个不需要欧拉筛的
逆元:(a/b)mod p,因为除法对mod无效,所以使用逆元,对a*(b)^(-1) mod p,b^(-1) mod p 求逆元等于 pow(p,mod-2)%mod,为什么?我现在也不会,记住吧,反正我知道(a/b)mod p没法算就是了
正约数和:(1+p1+p1^2...p1^e1)*..*(1+pm+pm^2+....+pm^em),用逆元和等比数列求和公式做出来
另外有个细节:ans = ans*(xxxxxx)mod p不能写成 ans *= (xxxxxxx)mod p!!!!!!!!!
7-13 m的n次方 (20分)
m的n次方
求m^n的约数个数和约数和。
输入格式:
一行由空格分隔开的两个正整数m,n(m,n≤1000000)
输出格式:
一行两个整数,分别表示m^n的约数的个数和约数和,两个数由 空格分隔开。由于答案可能较大,只需要输出它们对1e9+7取模的 结果即可。
输入样例:
2 2
输出样例:
3 7
#include<iostream>
#include<cstdio>
#include<cmath>
using namespace std;
#define MAXN 1000015
typedef long long ll;
int n,m,mod = 1000000007;
int p[MAXN],e[MAXN];
int tot;
ll ans,result;
void Only(ll x)
{for(int i = 2; i * i <= x; i++){if(x%i) continue;p[++tot] = i;while(x % i == 0){x /= i;e[tot]++;}}if(x != 1){p[++tot] = x;e[tot] = 1;}
}
ll mypow(ll a, ll b)
{ll res = 1;while(b){if(b%2 == 1) res = (res*a)%mod;a = (a*a)%mod;b /= 2;}return res;
}
int main()
{cin>>m>>n;Only(m);ans = 1;result = 1;for(int i = 1; i <= tot; i++){e[i] = n*e[i];result = result*mypow(p[i]-1,mod-2)%mod*(mypow(p[i],e[i]+1)-1+mod)%mod;ans = ans*(1+e[i])%mod;}cout<<ans<<" "<<result<<endl;return 0;
}
唯一分解,逆元,正约数个数和正约数和,欧拉筛相关推荐
- [数论] 约数个数定理与约数和定理
约数个数定理 对于一个大于1正整数n可以分解质因数: 则n的正约数的个数就是 . 其中a1.a2.a3-ak是p1.p2.p3,-pk的指数. 约数定理证明 首先同上,n可以分解质因数:n=p1^ ...
- 约数个数定理约数和定理
1.如果我们要求一个数的所有因数的个数会怎么去求呢? 首先想到最简单的方法就是暴力求解就可以.当然数据小.或者测试数据少就很简单就可以过了. 2.如果求一个区间内的数的所有因数的个数呢?或者求一个区间 ...
- 算法刷题-数论-试除法求约数、约数个数、约数之和、最大公约数(辗转相除法)
文章目录 acwing869. 试除法求约数 acwing870. 约数个数 acwing871. 约数之和 acwing872. 最大公约数 acwing869. 试除法求约数 acwing869. ...
- [数论]线性筛——约数个数与约数和
参考博客 参考博客 参考博客 这个讲的挺好 预备知识点: 大于1的数n可以分解质因数: n=p1a1×p2a2×p3a3*-*pka n的约数的个数是(a1+1) * (a2+1) * (a3+1)- ...
- 约数的和及约数的个数
约数的和及约数的个数 1.约数的个数等于:所有质因数的指数加上1后的乘积; 若一个数分解质因数后为(am)*(bn),其中a,b均为质因数;m,n均为相应质因数的指数. 则约数个数为(m+1)(n+1 ...
- 欧拉函数求互质数的个数
互质数的个数(一) 思路:欧拉函数. 题目链接 import java.util.Scanner;public class Main{public static void main(String[] ...
- 7809 - 试题J:因数个数 25'(欧拉筛法求因子个数)
链接:http://oj.hzjingma.com/p/7809?view=classic 来源:竞码编程 题目描述 求所有 2 2 2 到 n n n 的整数中,因数个数第 k k k 少的数因 ...
- 【超详细】(蓝桥杯Python)阶乘约数:求100阶乘的正约数个数。
首先,这里涉及到的数学知识有: 1.质数:只能被两个或以下的数整除的数 2.合数:能被三个或以上的数整除的数 3.阶乘:是所有小于及等于该数的正整数的积,并且0的阶乘为1.(100的阶乘为1x2x3. ...
- 完数{一个数如果等于它的因子之和,这个数就称为完数(因子:除去这个数本身正的约数)}
一个数如果等于它的因子之和,这个数就称为完数(因子:除去这个数本身正的约数) 例如:6=1+2+3.编程,找出1000以内的所有完数 class TestWanShu {public static v ...
- 【数学专题】约数个数与欧拉函数
整理的算法模板合集: ACM模板 目录 一.约数个数 1. AcWing 1291. 轻拍牛头 2. AcWing 1294. 樱花 2.1 AcWing 197. 阶乘分解 3. AcWing 19 ...
最新文章
- 【VS实践】代码调试与错误处理
- vue知识总结第一篇vue组件的定义以及父子组件的传值。
- 在jsp页面实现保存登录用户名和密码
- ActiveMQ源码解析 建立连接
- 同志亦凡人第五季/全集BQueer As Folk 5迅雷下载
- Java中short、int、long、float、double的取值范围
- Java 导入导出Excle表格 两种方式
- Spring Aop 切点表达式
- rake matlab,移动通信系统RAKE接收机的研究,matlab ,rake接收机
- Arduino火焰传感器(含代码)
- 黑苹果Mac OS 12镜像下载 DMG
- leetcode 881 救生艇 (python3- 贪心算法)
- 关于某日头条_signature参数逆向生成纯补环境
- 1135:配对碱基链
- 安装惠普打印机显示等待php,HP打印机安装过程中报错0x000006be的解决方法
- 关于STM32串口3的使用,接收并解析一帧数据
- 移位运算(左移和右移)
- Axure设置导航栏控制页面切换
- java读取Excel指定格式的数据
- windows消息处理过程及消息钩子
热门文章
- 在 lamp(centos)下配置二级 域名 、虚拟主机
- unity3D android游戏屏幕分辨率问题【转http://blog.csdn.net/jeksonal/article/details/8501549】...
- 运用SQL Server安全模型来保护数据
- 为什么使用梯度下降法或者梯度上升法
- 拓端tecdat|Python使用GARCH,EGARCH,GJR-GARCH模型和蒙特卡洛模拟进行股价预测
- 拓端tecdat|R语言广义线性模型(GLMs)算法和零膨胀模型分析
- 拓端tecdat|使用Python和Keras进行主成分分析、神经网络构建图像重建
- CopyQq program山寨QQ项目
- 链表的基本操作Basic Operation of LinkList
- php yii 控件分页,Yii实现简单分页的方法