数论
数论
moyangxian
总会过去的
展开
-
快速幂
模板:模板来自AcWing求 m^k mod p,时间复杂度 O(logk)。int qmi(int m, int k, int p){ int res = 1 % p, t = m; while (k) { if (k&1) res = res * t % p; t = t * t % p; k >&...原创 2020-04-15 15:30:28 · 71 阅读 · 0 评论 -
欧拉函数
模板:模板来自AcWingint phi(int x){ int res = x; for (int i = 2; i <= x / i; i ++ ) if (x % i == 0) { res = res / i * (i - 1); while (x % i == 0) x /= i;...原创 2020-04-11 17:57:11 · 78 阅读 · 0 评论 -
最大公约数
题目链接给定n对正整数ai,bi,请你求出每对数的最大公约数。输入格式第一行包含整数n。接下来n行,每行包含一个整数对ai,bi。输出格式输出共n行,每行输出一个整数对的最大公约数。数据范围1≤n≤105,1≤ai,bi≤2∗109输入样例:23 64 6输出样例:32#include<iostream>using namespace std;...原创 2020-04-11 17:33:07 · 143 阅读 · 0 评论 -
约数之和
题目链接给定n个正整数ai,请你输出这些数的乘积的约数之和,答案对109+7取模。输入格式第一行包含整数n。接下来n行,每行包含一个整数ai。输出格式输出一个整数,表示所给正整数的乘积的约数之和,答案需对109+7取模。数据范围1≤n≤100,1≤ai≤2∗109输入样例:3268输出样例:252代码来自AcWing#include <iostream&g...原创 2020-04-11 17:13:40 · 103 阅读 · 1 评论 -
约数个数
题目链接给定n个正整数ai,请你输出这些数的乘积的约数个数,答案对109+7取模。输入格式第一行包含整数n。接下来n行,每行包含一个整数ai。输出格式输出一个整数,表示所给正整数的乘积的约数个数,答案需对109+7取模。数据范围1≤n≤100,1≤ai≤2∗109输入样例:3268输出样例:12题记:根据算数基本定理可得,任意一个大于或者等于2的正整数都可以分解为...原创 2020-04-11 16:55:44 · 244 阅读 · 0 评论 -
试除法求约数
题目链接模板:模板来自AcWingvector<int> get_divisors(int x){ vector<int> res; for (int i = 1; i <= x / i; i ++ ) if (x % i == 0) { res.push_back(i); ...原创 2020-04-11 15:38:19 · 138 阅读 · 0 评论 -
筛素数
题目链接给定一个正整数n,请你求出1~n中质数的个数。输入格式共一行,包含整数n。输出格式共一行,包含一个整数,表示1~n中质数的个数。数据范围1≤n≤106输入样例:8输出样例:4朴素筛法:#include <iostream>#include <algorithm>using namespace std;const int N= 10...原创 2020-04-11 15:25:41 · 70 阅读 · 0 评论 -
分解质因数
试除法分解质因数模板模板来自AcWingvoid divide(int x){ for (int i = 2; i <= x / i; i ++ ) if (x % i == 0) { int s = 0; while (x % i == 0) x /= i, s ++ ; ...原创 2020-04-11 14:43:27 · 239 阅读 · 0 评论 -
试除法判定质数
题目链接给定n个正整数ai,判定每个数是否是质数。输入格式第一行包含整数n。接下来n行,每行包含一个正整数ai。输出格式共n行,其中第 i 行输出第 i 个正整数ai是否为质数,是则输出“Yes”,否则输出“No”。数据范围1≤n≤100,1≤ai≤2∗109输入样例:226输出样例:YesNo#include<iostream>using nam...原创 2020-04-10 16:53:26 · 293 阅读 · 0 评论