数论
算法解题那些事
这个作者很懒,什么都没留下…
展开
-
等差素数数列
等差素数列题目描述本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。2,3,5,7,11,13,…是素数序列。 类似:7,37,67,97,127,157这样完全由素数组成的等差数列,叫等差素数数列。上边的数列公差为 30,长度为 6。2004 年,格林与华人陶哲轩合作证明了:存在任意长度的素数等差数列。 这是数论领域一项惊人的成果!有这一理论为基础,请你借助手中的计算机,满怀信心地搜索:长度为 10 的等差素数列,其公差最小值是多少?这题目是蓝桥杯一次省赛b组的一道原创 2022-04-06 23:02:11 · 908 阅读 · 0 评论 -
2017年c++A组包子凑数
包子凑数明几乎每天早晨都会在一家包子铺吃早餐。这家包子铺有N种蒸笼,其中第i种蒸笼恰好能放Ai个包子每种蒸笼都有非常多笼,可以认为是无限笼。每当有顾客想买X个包子,卖包子的大叔就会选出若干笼包子来,使得这若干笼中恰好一共有X个包子。比如一共有3种蒸笼,分别能放3、4和5个包子。当顾客想买11个包子时,大叔就会选2笼3个的再加1笼5个的(也可能选出1笼3个的再加2笼4个的)。当然有时包子大叔无论如何也凑不出顾客想买的数量。比如一共有3种蒸笼,分别能放4、5和6个包子。而顾客想买7个包子时,大叔就原创 2022-04-03 18:03:27 · 206 阅读 · 0 评论 -
线性筛质数
线性筛质数前面我们已经讲过了,求1-N一共有多少个质数的两种方法,一个复杂度是o(nln(n)),一个复杂度是o(nln(ln(n))),我们这里再介绍一种筛选方法,这个方法是o(n)的复杂度,没想到吧。#include<iostream>using namespace std;const int N=1e6+10;int primes[N];bool st[N];int ans;int main(){ int n; cin>>n; fo原创 2022-01-12 13:33:05 · 412 阅读 · 0 评论 -
唯一分解定理及其应用详解
唯一分解定理介绍及其应用一、定义唯一分解定理又称算术基本定理,指:一个大于一的正整数N都可以唯一分解成有限个质数的乘积。N=P1a1⋅P2a2⋅P3a3⋯PnanN=P_1^{a_1} \cdot P_2^{a2} \cdot P_3^{a_3} \cdots P_n^{a_n}N=P1a1⋅P2a2⋅P3a3⋯Pnan。这里 P1<P2<P3<⋯<PnP_1<P_2<P_3<\cdots<P_nP1<P2<P3<原创 2022-01-11 19:25:21 · 1758 阅读 · 3 评论 -
试除法求约数
试除求约数给定 n 个正整数 ai,对于每个整数 ai,请你按照从小到大的顺序输出它的所有约数。输入格式第一行包含整数 n。接下来 n 行,每行包含一个整数 ai。输出格式输出共 n 行,其中第 i 行输出第 i 个整数 ai 的所有约数。数据范围1≤n≤100,2≤ai≤2×109输入样例:268输出样例:1 2 3 61 2 4 8思路:注意每个约数是成对出现的并且不能两个约数都大于根号n,因此我们只需要枚举那个比根号n小的约数就可以了,因此我们可以实现n\sqrt{n原创 2022-01-11 13:58:09 · 233 阅读 · 0 评论 -
质数相关问题(一)
数论之质数问题1问题1:判断n是不是质数#include<iostream>using namespace std;bool isprime(int n){ if(n<2)return false; for(int i=2;i<=n/i;i++)//这里写成n/i比i*i<=n和sqrt(n)更好一些,因为用i*i的话,当i过大容易越界,而算sqrt(n)速度比较慢 { if(n%i==0)return false;原创 2022-01-11 13:13:09 · 264 阅读 · 0 评论