![](https://img-blog.csdnimg.cn/20190918140158853.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
数学知识
利用数学知识解算法题
撒浪嘿呦x
我爱学习!
展开
-
数学知识 快速幂
快速幂给定 n 组 ai,bi,pi,对于每组数据,求出 aibi mod pia_i^{bi}~mod~p_iaibi mod pi 的值。输入格式第一行包含整数 n。接下来 n 行,每行包含三个整数 ai,bi,pi。输出格式对于每组数据,输出一个结果,表示 aibi mod pia_i^{bi}~mod~p_iaibi mod pi 的值。每个结果占一行。数据范围1≤ n ≤100000,1≤原创 2022-02-24 16:51:02 · 628 阅读 · 0 评论 -
数学知识 筛法求欧拉函数
筛法求欧拉函数给定一个正整数 n,求 1∼n 中每个数的欧拉函数之和。输入格式共一行,包含一个整数 n。输出格式共一行,包含一个整数,表示 1∼n 中每个数的欧拉函数之和。数据范围1≤ n ≤106输入样例:6输出样例:12筛法求欧拉函数:(需要知道线性筛法筛质数 以及 欧拉函数 的基本常识)在线性筛法筛选出质数时存在这样的性质:从1到质数x的数中,除了x它本身,所有数都与x互质。(存在x-1个与其互质的数,所以质数x的欧拉函数结果为x-1)#include<bit原创 2022-02-24 14:49:56 · 899 阅读 · 0 评论 -
数学知识 欧拉函数
欧拉函数给定 n 个正整数 ai,请你求出每个数的欧拉函数。欧拉函数的定义输入格式第一行包含整数 n。接下来 n 行,每行包含一个正整数 ai。输出格式输出共 n 行,每行输出一个正整数 ai 的欧拉函数。数据范围1≤ n ≤ 100,1≤ ai ≤2×109输入样例:3368输出样例:224欧拉函数:求1~n中与n互质的数的个数。n = p1a1+p2a2+p3a3+p4a4+…pkak欧拉函数公式: Φ(n)= n * (1-1/p1) * (1-1/p原创 2022-02-23 17:23:34 · 754 阅读 · 0 评论 -
数学知识 最大公约数
最大公约数给定 n 对正整数 ai,bi,请你求出每对数的最大公约数。输入格式第一行包含整数 n。接下来 n 行,每行包含一个整数对 ai,bi。输出格式输出共 n 行,每行输出一个整数对的最大公约数。数据范围1≤ n ≤105,1≤ ai,bi ≤2×109输入样例:23 64 6输出样例:32欧几里得算法(辗转相除法) 求最大公约数(Greatest Common Divisor,GCD):求a,b两个数的最大公约数:(a>b)c = a % b若 c原创 2022-02-23 16:56:19 · 428 阅读 · 0 评论 -
数学知识 约数的和
约数之和给定 n 个正整数 ai,请你输出这些数的乘积的约数之和,答案对 109+7 取模。输入格式第一行包含整数 n。接下来 n 行,每行包含一个整数 ai。输出格式输出一个整数,表示所给正整数的乘积的约数之和,答案需对 109+7 取模。数据范围1≤ n ≤100,1≤ ai ≤2×109输入样例:3268输出样例:252约数和的定理:n = p1a1+p2a2+p3a3+p4a4+…pkak而 p1a1 的约数有:p10,p11,p12,p13…p1k 共(a原创 2022-02-22 16:57:39 · 239 阅读 · 0 评论 -
数学知识 约数个数
约数个数给定 n 个正整数 ai,请你输出这些数的乘积的约数个数,答案对 109+7 取模。输入格式第一行包含整数 n。接下来 n 行,每行包含一个整数 ai。输出格式输出一个整数,表示所给正整数的乘积的约数个数,答案需对 109+7 取模。数据范围1≤ n ≤100,1≤ ai ≤2×109输入样例:3268输出样例:12约数个数定理任何一个大于1的正整数n都可以分解质因数:n = p1a1+p2a2+p3a3+p4a4+…pkak而 p1a1 的约数有:p10原创 2022-02-22 15:43:32 · 287 阅读 · 0 评论 -
数学知识 试除法求约数
试除法求约数给定 n 个正整数 ai,对于每个整数 ai,请你按照从小到大的顺序输出它的所有约数。输入格式第一行包含整数 n。接下来 n 行,每行包含一个整数 ai。输出格式输出共 n 行,其中第 i 行输出第 i 个整数 ai 的所有约数。数据范围1≤ n ≤100,2≤ ai ≤2×109输入样例:268输出样例:1 2 3 6 1 2 4 8 试除法求公约数:遍历查找从 1 到 √n 内的所有约数,一一对应的找出每个数对应的另一个约数。#include<原创 2022-02-22 15:18:31 · 439 阅读 · 0 评论 -
数学知识 筛质数
筛质数给定一个正整数 n,请你求出 1∼n 中质数的个数。输入格式共一行,包含整数 n。输出格式共一行,包含一个整数,表示 1∼n 中质数的个数。数据范围1≤ n ≤106输入样例:8输出样例:4筛选n以内的质数:朴素筛法:O(nlogn)i 从 2 开始遍历,把 n 以内所有 i 的倍数全部筛选掉,剩下的数就是质数。void get_primes(int n){ for(int i=2;i<=n;i++) //p存放已经找到的质数,cnt记录已经找到的质数原创 2022-02-21 20:33:55 · 242 阅读 · 0 评论 -
数学知识 分解质因数
分解质因数给定 n 个正整数 ai,将每个数分解质因数,并按照质因数从小到大的顺序输出每个质因数的底数和指数。输入格式第一行包含整数 n。接下来 n 行,每行包含一个正整数 ai。输出格式对于每个正整数 ai,按照从小到大的顺序输出其分解质因数后,每个质因数的底数和指数,每个底数和指数占一行。每个正整数的质因数全部输出完毕后,输出一个空行。数据范围1≤ n ≤100,2≤ ai ≤2×109输入样例:268输出样例:2 13 12 3试除法分解质因数:#inc原创 2022-02-21 15:52:03 · 527 阅读 · 0 评论 -
数学知识 试除法判定质数
试除法判定质数给定 n 个正整数 ai,判定每个数是否是质数。输入格式第一行包含整数 n。接下来 n 行,每行包含一个正整数 ai。输出格式共 n 行,其中第 i 行输出第 i 个正整数 ai 是否为质数,是则输出 Yes,否则输出 No。数据范围1≤n≤100,1≤**ai**≤231−1输入样例:226输出样例:YesNo质数(素数): 大于1的自然数(0和1不是质数)中因数只有1和它自己的数。试除法:#include<bits/stdc++.h>原创 2022-02-21 11:08:31 · 153 阅读 · 0 评论 -
有序数组中的单一元素
有序数组中的单一元素给你一个仅由整数组成的有序数组,其中每个元素都会出现两次,唯有一个数只会出现一次。请你找出并返回只出现一次的那个数。你设计的解决方案必须满足 O(log n) 时间复杂度和 O(1) 空间复杂度。示例 1:输入: nums = [1,1,2,3,3,4,4,8,8]输出: 2示例 2:输入: nums = [3,3,7,7,10,11,11]输出: 10提示:1 <= nums.length <= 1050 <= nums[i] <=原创 2022-02-14 14:14:38 · 853 阅读 · 0 评论 -
每日一题 a^b(快速幂)
a^b求 a 的 b 次方对 p 取模的值。输入格式三个整数 a,b,p ,在同一行用空格隔开。输出格式输出一个整数,表示a^b mod p的值。数据范围0≤a,b≤1e91≤p≤1e9输入样例:3 2 7输出样例:2快速幂#include <iostream>#include <algorithm>using namespace std;typedef long long ll;ll a,b,p;int main(){ cin &原创 2021-02-21 11:59:54 · 176 阅读 · 0 评论