数论
数论的相关概念和方法
焚天&无夜
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
简单迭代法、牛顿迭代法、Aitken加速迭代法 C++代码参考
1、简单迭代法: 参考代码: #include<stdio.h> #include<math.h> #define x0 3//初值 #define MAXREPT 1000//迭代次数 #define EPS 0.5E-6//精度 #define G(x) pow(sin(x)+12*x-1,1.0/3)//你的迭代函数;将原方程化为x=G(x)。 int main() { int i; double x_k=x0,x_k1=x0; printf(" k xk\n"); f原创 2021-04-25 17:05:06 · 5558 阅读 · 0 评论 -
欧几里得算法(辗转相除法)代码、原理及简要证明
辗转相除法求最大公约数: int gcd(int a,int b) { return b==0?a:gcd(b,a%b); } 原理: gcd(a,b) = gcd(b,a % b) gcd(a,0) = a 简要证明: 证明:gcd(a,b) = gcd(b,a % b) 将 a 表示为 kb + r,(a、b、k、r 均是正整数,r<b) 则 r = a mod b 假设 d 是 a、b 的公约数,那么 d | a、d | b;即 d 可以整除 a 和 b。 r = a - kb,等式两边同原创 2020-07-30 13:47:54 · 870 阅读 · 0 评论 -
素数筛选--埃氏筛法和欧拉筛
素数筛选在算法题中较为常见,也较为基础,所以需要掌握高效的素数筛选方法。 现在,我们要得到小于正整数n的所有素数。 在刚接触程序和算法时,我们可能会对小于n的所有整数遍历一遍,然后每一个判断它是不是素数。而判断是不是素数,又要从2遍历到它本身,看是否能整除。 所以第一种方法,也是最初级、效率较低的方法: bool flag=true; int prime1(int n) { for(int i=2;i<n;i++) { for(int j=2;j<=i;j++) { if(i%原创 2020-07-29 20:55:02 · 479 阅读 · 0 评论 -
洛谷P3383【模板】线性筛素数(内附算法详解 | 链接)
题目背景 本题已更新,从判断素数改为了查询第 kk 小的素数 提示:如果你使用 cin 来读入,建议使用 std::ios::sync_with_stdio(0) 来加速。 题目描述 如题,给定一个范围 n,有 q 个询问,每次输出第 k 小的素数。 输入格式 第一行包含两个正整数 n,q,分别表示查询的范围和查询的个数。 接下来 q 行每行一个正整数 k,表示查询第 k 小的素数。 输出格式 输出 q 行,每行一个正整数表示答案。 输入输出样例 输入 #1 100 5 1 2 3 4 5 输出 #1 2原创 2020-07-29 20:51:41 · 815 阅读 · 0 评论
分享