数学章节:筛素数、分解质因数、

AcWing 196. 质数距离(区间筛质数) 题目 给定两个整数L和U,你需要在闭区间[L,U]内找到距离最接近的两个相邻质数C1和C2(即C2-C1是最小的),如果存在相同距离的其他相邻质数对,则输出第一对。 同时,你还需要找到距离最远的两个相邻质数D1和D2(即D1-D2是最大的),如果存在相同距离的其他相邻质数对,则输出第一对。 输入格式 每行输入两个整数L和U,其中L和U的差值不会超过1000000。 输出格式 对于每个L和U ,输出一个结果,结果占一行。 结果包括距离最近的相邻质数对和距离最远的相邻质数对。(具体格式参照样例) 如果L和U之间 阅读详情

数论知识总结

分类:筛素数(埃氏筛法、线性筛法、二次筛法)、分解质因数、快速幂、约数个数、欧拉函数、同余、矩阵乘法、组合计数、高斯消元、容斥原理、概率与数学期望、博弈论

筛素数方法

埃氏筛法:loglog(n)loglog(n)loglog(n),素数所有的倍数直接筛掉,线性筛法:O(n)O(n)O(n),不断素数倍数筛掉,二次筛法间接地把某一段很大的区间素数筛掉(线性筛法时间复杂度较高的情况)

注意的是,1有的时候需要特判,联系图论一起考察

1292. 哥德巴赫猜想

#include <iostream>
#include <cstring>
#include <algorithm>

using namespace std;

const int N = 1e6 + 10;
bool st[N];
int primes[N], cnt;
int n;

void init(int n)
{
    for (int i = 2; i <= n; i ++ )
    {
        if (!st[i]) primes[cnt ++ ] = i;
        for (int j = 0; primes[j] * i <= n; j ++ )
        {
            st[primes[j] * i] = true;
            if (i % primes[j] == 0) break;
        }
    }
}

int main()
{
    init(N - 1);
    
    while (cin >> n, n)
    {
        for (int i = 0; ; i ++ )
        {
            int a = primes[i], b = n - a;
            if (!st[b])
            {
                printf("%d = %d + %d\n", n, a, b);
                break;
            }
        }
    }
    return 0;
}

1293. 夏洛克和他的女朋友

#include <iostream>
#include <cstring>
#include <algorithm>

using namespace std;
const int N = 100010;
int primes[N], cnt;
bool st[N];
int n;

void init(int n)
{
    for (int i = 2; i <= n; i ++ )
    {
        if (!st[i]) primes[cnt ++ ] = i;
        for (int j = 0; primes[j] * i <= n; j ++ )
        {
            st[primes[j] * i] = true;
            if (i % primes[j] == 0) break;
        }
    }
}

int main()
{
    cin >> n;
    
    init(n + 1);
    
    if (n <= 2) puts("1");
    else puts("2");
    
    for (int i = 2; i <= n + 1; i ++ )
        if (!st[i]) printf("1 ");
        else printf("2 ");

    return 0;
}

AcWing 196. 质数距离

#include <iostream>
#include <cstring>
#include <algorithm>

typedef long long LL;

using namespace std;
const int N = 1000010;
int primes[N], cnt;
bool st[N];
int l, r;

void init(int n)
{
    memset(st, 0, sizeof st);
    cnt = 0;
    for (int i = 2; i <= n; i ++ )
    {
        if (!st[i]) primes[cnt ++ ] = i;
        for (int j = 0; primes[j] * i <= n; j ++ )
        {
            st[primes[j] * i] = true;
            if (i % primes[j] == 0) break;
        }
    }
}

int main()
{
    while (cin >> l >> r)
    {
        init(50010);
        memset(st, 0, sizeof st);

        for (int i = 0; i < cnt; i ++ )
        {
            LL p = primes[i];
            for (LL j = max(p * 2, (l + p - 1) / p * p); j <= r; j += p)
            {
                st[j - l] = true;
            }
        }

        cnt = 0;
        for (int i = 0; i <= r - l; i ++ )
        {
            if (!st[i] && i + l >= 2)
                primes[cnt ++ ] = i + l;
        }

        if (cnt < 2) puts("There are no adjacent primes.");
        else
        {
            int minp = 0, maxp = 0;
            for (int i = 0; i + 1 < cnt; i ++ )
            {
                int d = primes[i + 1] - primes[i];
                if (d < primes[minp + 1] - primes[minp]) minp = i;
                if (d > primes[maxp + 1] - primes[maxp]) maxp = i;
            }

            printf("%d,%d are closest, %d,%d are most distant.\n",
                primes[minp], primes[minp + 1],
                primes[maxp], primes[maxp + 1]);
        }
    }
    return 0;
}

分解质因数

197. 阶乘分解

#include <iostream>
#include <cstring>
#include <algorithm>

using namespace std;

const int N = 1000010;
int primes[N], cnt;
bool st[N];
int n;

void init(int n)
{
    for (int i = 2; i <= n; i ++ )
    {
        if (!st[i]) primes[cnt ++ ] = i;
        for (int j = 0; primes[j] * i <= n; j ++ )
        {
            st[primes[j] * i] = true;
            if (i % primes[j] == 0) break;
        }
    }
}

int main()
{
    cin >> n;
    
    init(n);
    
    for (int i = 0; i < cnt; i ++ )
    {
        int p = primes[i];
        int s = 0;
        for (int j = n; j; j /= p) s += j / p;
        printf("%d %d\n", p, s);
    }
    
    return 0;    
}

序列的第k个数

#include <iostream>
#include <cstring>
#include <algorithm>

using namespace std;

const int mod = 200907;
typedef long long LL;

LL qmi(int a, int k)
{
    int res = 1;
    while (k)
    {
        if (k & 1) res = (LL)res * a % mod;
        a = (LL)a * a % mod;
        k >>= 1;
    }
    return res;
}

int main()
{
    int T;
    cin >> T;
    while (T -- )
    {
        int a, b, c, k;
        cin >> a >> b >> c >> k;
        if (2 * b == a + c) cout << (a + (b - a) * (LL)(k - 1)) % mod << endl;
        else cout << (LL)a * qmi(b / a, k - 1) % mod << endl;
    }
    return 0;
}

1290. 越狱

#include <iostream>
#include <cstring>
#include <algorithm>

using namespace std;

typedef long long LL;

const int mod = 100003;

int qmi(int a, LL k)
{
    int res = 1;
    while (k)
    {
        if (k & 1) res = (LL)res * a % mod;
        a = (LL)a * a % mod;
        k >>= 1;
    }
    return res;
}

int main()
{
    int m;
    LL n;
    
    cin >> m >> n;
    
    cout << (qmi(m, n) - (LL)m * qmi(m - 1, n - 1) % mod + mod) % mod << endl;
    
    return 0;
}
C#实现快速素数分解并行算法 素数是指在大于1的自然数中,除了1和它本身以外不再有其他因数的数。例如2、3、5、7等都是素数。与之相对,合数则是指在大于1的自然数中,除了1和它本身外,至少还有一个正因数。例如4、6、8等。素数是指只能被1和它本身整除的大于1的自然数。例如,2、3、5、7等都是素数。相对地,除了1和它本身以外还能被其他自然数整除的数叫做合数。例如,4、6、8等就是合数。在数学中,素数具有很多独特的性质,使得它们在密码学、数论等多个领域都极为重要。 阅读详情

相关推荐

探索排列与组合的深层奥秘

本文深入探讨了排列组合数学中的高级概念,包括质因数分解、唯一分解定理、拓扑排序、自反置换以及排列的逆运算。文章通过对特定章节内容的解读,揭示了数学在解决复杂问题中的应用,并对如何利用数学工具进行实际问题的分析提供了见解。

weixin_36074800的博客 673

整数因子分解(转)

整数因子分解(转) 相对于素数判定来说,因子分解的实现就没办法达到那么快速了。因子分解至今仍没有类似于素数判定的多项式算法,这也成为了RSA公钥系统安全得以保障的基础。鉴于这两个问题的难度相差较大,在我们施行分解之前,最好是预先知道目标整数的确不是一个素数,否则很可能花费了很大力气只干了素数判定的活——杀鸡用牛刀了。因子分

lishuiwang的专栏 1万+

MATLAB实现寻找具有特定质因数的第1500个整数

MATLAB作为一款高性能的数值计算与可视化软件,广泛应用于工程计算、算法开发、数据分析等领域。它提供了强大的矩阵运算能力和丰富的函数库,极大地简化了编程和数据处理过程。在动态规划算法中,状态通常是对问题解决过程中的某一个阶段的描述。在整数问题中,我们通常用一个整数序列或者一个矩阵来表示当前的状态,比如整数分解问题中,一个状态可以表示为当前整数分解的前缀和。状态转移则描述了如何从一个或多个前序状态得到当前状态的过程。

weixin_35749545的博客 1033

二次筛法

题目:素数距离   分析:本题数据区间的上界达到21亿,不能将所有小于21亿的素数存下来,只能针对本题的假设:区间长度小 于1000000,把给定区间[ L,U ]的所有素数通过筛法找出来,使用筛法筛掉[L,U]区间的所有非素数,需要知道 [L,U]区间的所有非素数的素数因子(因为一个非素数是被它的最小素数因子筛掉),2147483647内的数或者是 素数,或者能被sqrt(214748

ACdreamer 5163

MATLAB编程在初等数论中的应用实践

质数是指在大于1的自然数中,除了1和它本身以外不再有其他因数的数。例如,2、3、5、7等都是质数。质数在数论中扮演着基础性的角色,因为它们是自然数的“基本构建块”,任意一个大于1的自然数都可以表示成若干个质数的乘积,这种表示被称为数的质因数分解。质数有几个基本性质,其中最著名的是唯一分解定理,即每个大于1的整数要么本身是质数,要么可以分解成质数的乘积,而且这种分解方式在不考虑因数顺序的情况下是唯一的。在数论中,同余是一种基本的数学概念,其定义如下:定义。

weixin_36078669的博客 858

Python实现正整数因数分解教程

因数是一个数学概念,指的是能够整除给定正整数的整数。例如,当考虑正整数 28 时,1、2、4、7、14 和 28 都是它的因数,因为它们都能整除 28,没有余数。因数通常是成对出现的,它们互为乘积等于原数。质数(或素数)是一个大于1的自然数,且除了1和它本身之外,不能被其他自然数整除的数。判断一个数是否为质数的最简单方法是尝试将其除以小于等于其平方根的所有整数。

weixin_29717341的博客 1119

RSA算法学习

一、 RSA密码体制背景以前的加密都是对称性加密(Symmetric-key algorithm),即加密规则和解密规则相同。这种加密最大的缺点就是对应的规则需要告诉其他人,否则无法解密。保存和传递这个规则是个难题。1974年瑞夫·墨克(Ralph C. Merkle)提出了一种新的构想:可以公开加密规则,然后可以在不传递解密规则的情况下完成解密。1976年惠特菲尔德·迪菲(BaileyWhitf...

AlexYoung28的博客 1571

2秒内 计算10亿内素数筛法

最快的素数筛法, 2秒初始化后在奔腾4上能算出2^31 以内素数个数,之后10ms内算出任意 0-2^31之间素数个数,可快速的计算第k个素数, 枚举区间[n, m](m - n < 10^5)以内素数等 还可以计算第k个数,分因素分解 Prime[78499] = 1000003 b ---------------------start benchmark------------------------ PI(2147483647) = 105097565, time use 232.64 ms k e8 -------------------start find kth prime--------------------- Prime[100000000] = 2038074743, time use 2.94 ms 10^7+100 e5-100 PI[10000100, 10100000] = 6239, time use 0.53 ms o 2^31+1 -------------------start factor prime---------------------- 2147483649 : 3 * 715827883 e9 PI(1000000000) = 50847534, time use 3.25 ms e10 e9 PI[10000000000, 11000000000] = 43336106, time use 1322.91 ms s e10 10 -------------------start print prime------------------------ PI[10000000000] = 455052511 0 prime number in range[10000000000, 10000000010] : s e10 100 -------------------start print prime------------------------ PI[10000000000] = 455052511 5 prime number in range[10000000000, 10000000100] : 10000000019 10000000033 10000000061 10000000069 10000000097

普通素数 筛法求素数 二次筛法求素数 MillerRabin素数测试【模板】

普通素数判断 筛法求素数[1,N] 二次筛法求素数[L,R] Miller素数测试方法

程序员充电站(itcharge) 2635

别再乱用标签了!深度解析Unity Addressables标签(Labels)的三种高级用法与性能影响

本文深度解析Unity Addressables标签(Labels)的三种高级用法与性能影响,包括标签组合查询、Pack Together by Label打包策略及运行时性能优化。通过实战代码示例和性能数据对比,帮助开发者实现精细化资源加载控制与包体优化,提升项目效率。

weixin_30500105的博客 509

9 海康视觉平台VisionMaster 上手系列:典型案例之螺丝机案例

海康视觉平台VisionMaster 上手系列:典型案例之螺丝机案例 快速入门 工业机器视觉 机器视觉

HuangGong2022的博客 7181

东华oj-挑战题第10题-分解质因数

10 分解质因数 作者: Turbo时间限制: 1S章节: 基本练习(循环) 问题描述 : 求出区间[a,b]中所有整数的质因数分解。 输入说明 : 输入两个整数a,b。 2<=a<=b<=10000 输出说明 : 每行输出一个数的分解,形如k=a1a2a3…(a1<=a2<=a3…,k也是从小到大的)(具体可看范例) 输入范例 : 3 10 输出范例 : 3=...

qq_41409120的博客 706

超声波雾化驱动设计:专用芯片FM8118替代MCU的工程实践

超声波雾化是一种基于压电陶瓷谐振原理的高频能量转换技术,其核心在于在1.6–2.4MHz频段精准激励雾化片以实现高效水分子破碎。传统采用通用MCU配合分立MOSFET的方案受限于PWM频率上限、栅极驱动能力不足及EMI控制困难,导致雾化效率低、温升高、可靠性差。专用雾化芯片(如FM8118)通过集成2.1MHz振荡器、零电压开关(ZVS)控制与过流/过热双重保护,从架构层面解决高频功率驱动的本质约束,显著提升驱动效率(达83.7%)与系统鲁棒性。该技术广泛适用于桌面加湿器、医疗雾化器、农业微喷等对体积、功耗

weixin_34620658的博客 408

挑战题10 分解质因数

10 分解质因数 作者: Turbo时间限制: 1S章节: 基本练习(循环) 问题描述 : 求出区间[a,b]中所有整数的质因数分解。 输入说明 : 输入两个整数a,b。 2<=a<=b<=10000 输出说明 : 每行输出一个数的分解,形如k=a1a2a3…(a1<=a2<=a3…,k也是从小到大的)(具体可看范例) 输入范例 : 3 10 输出范例 : 3=3 4...

fxwentian的博客 376

单细胞marker基因表达密度图-(还有一个包装函数)

我们借助Nebulosa,将上面的过程包装为一个函数,还是那句话,受累麻烦的事我们来解决,您轻松即可,先看看函数参数:需要注意的是,如果你只想框选某一类celltype,理想模式是这群celltype是单独聚类的,没有散落在其他类群,否则将会全部框选,效果不好,建议使用AI/PS添加。需要注意,这里我算是投机取巧了,用了一个和这个作图毫无关系的包ggnetwork,主要的目的是用他的theme_blank()主题,一次性将所有清空,当然也可以自己慢慢写,不过有现成的,为啥不用呢?这质感不就上去了嘛。

qq_42090739的博客 1372

SRS(简单实时视频服务) 笔记(5)- 视频录制

在SRS使用中实现视频录制功能。

irainsa的博客 1700

O(N)的素数筛选法和欧拉函数

首先,在谈到素数筛选法时,先涉及几个小知识点. 1.一个数是否为质数的判定. 质数,只有1和其本身才是其约数,所以我们判定一个数是否为质数,只需要判定2~(N - 1)中是否存在其约数即可,此种方法的时间复杂度为O(N),随着N的增加,效率依然很慢。这里有个O()的方法:对于一个合数,其必用一个约数(除1外)小于等于其平方根(可用反证法证明),所以我们只需要判断2~之间的数即可. b

Keep Moving的专栏 7131

Android Framework 开发工程师职位深度解析与面试指南

摘要:博泰车联网科技(上海)股份有限公司招聘Android Framework开发工程师,负责车载系统的底层开发与优化。岗位要求5年以上经验,深入掌握Android Framework机制(WindowManager、PowerManager等模块),熟悉高通平台中间件架构及NDK/JNI开发,具备性能优化(启动时间、ANR处理)、OTA升级等能力。需熟练使用Android Studio、Git等工具,有车载开发经验者优先。工作内容包括Framework定制开发、问题排查及技术文档编写。

郑伟强dev的专栏 552

NOIP中数学---第2课 质数

什么是质数 思考三秒钟,注意1不是质数 试除法求质数 先看题目 给定n个正整数ai,判定每个数是否是质数。 输入格式 第一行包含整数n。 接下来n行,每行包含一个正整数ai。 输出格式 共n行,其中第 i 行输出第 i 个正整数ai是否为质数,是则输出“Yes”,否则输出“No”。 数据范围 1≤n≤100, 1≤ai≤2^31−1 输入样例: 2 2 6 输出样例: Yes No 纯暴力就可以了,注意优化 #include<iostream> using namespace std; in

信息学奥赛学案 873

YOLOv11改进策略【独家融合改进】| MobileNetV4+BiFPN,轻松实现降参涨点,适用专栏内所有的骨干替换

可扩展的高效物体检测BiFPN(加权双向特征金字塔网络)

Limiiiing的博客 2362

ABAP Bits and Bytes 完全参考,理解内存、字节、位运算与类型解释

ABAP开发中业务代码与底层字节处理的差异:业务层关注采购订单、会计凭证等语义信息,而接口开发需处理十六进制、位运算等底层操作。文章通过整数变量示例说明同一段字节在不同类型解释下会呈现不同值,并介绍x类型、位运算及类型转换的实际应用。这些知识在文件接口、加密传输等场景中尤为重要,开发者需注意字节序、编码等问题。建议将底层协议处理与业务逻辑分离,以保持代码清晰和可维护性。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 142

java 素数欧拉筛选_(转载)O(N)的素数筛选法和欧拉函数

转自:http://blog.youkuaiyun.com/dream_you_to_life/article/details/43883367 作者:Sky丶Memory1.一个数是否为质数的判定.质数,只有1和其本身才是其约数,所以我们判定一个数是否为质数,只需要判定2~(N - 1)中是否存在其约数即可,此种方法的时间复杂度为O(N),随着N的增加,效率依然很慢。这里有个O()的方法:对于一个合数,其必...

weixin_42394573的博客 464

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

【算法题】机试指南-数学问题篇

本文仅供个人学习使用,免费分享。目前[机试指南]本系列已经达到字数10w+,所以按原每个章节拆开发布,点击目录跳转。

你的每一个关注每一次观看都会支持我越来越好,关注能加快我的更新速度~ 1251

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

(转载)O(N)的素数筛选法和欧拉函数

转自:http://blog.youkuaiyun.com/dream_you_to_life/article/details/43883367 作者:Sky丶Memory 1.一个数是否为质数的判定. 质数,只有1和其本身才是其约数,所以我们判定一个数是否为质数,只需要判定2~(N - 1)中是否存在其约数即可,此种方法的时间复杂度为O(N),随着N的增加,效率依然很慢。这里有...

dixianqi2609的博客 94

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

YBT 6 数学基础

$补+写题ing$ 第 1 章 快速幂 序列的第 k 个数 link $solution:$ 板子 A 的 B 次方 link $solution:$ 板子 [NOIP2013] 转圈游戏 link $solution:$ 板子 越狱 link $solution:$ 简单的容斥原理,$m^n-m\times \prod_{i=1}^{n-1} m-1$ 第 ...

weixin_30260399的博客 277

Acwing - 算法基础课 - 笔记(数学知识 · 一)

文章目录数学知识(一)质数质数的判定分解质因数朴素思路优化筛选质数朴素筛法埃氏筛法线性筛法小结约数求一个数的所有约数求约数个数求约数之和求最大公约数 第四章的内容是数学知识,主要讲解了 数论 组合计数 高斯消元 简单博弈论 数学知识(一) 这一小节主要讲解的是数论,主要包括了质数,约数,欧几里得算法。 质数 对所有的大于1的自然数字,定义了【质数/合数】这一概念。对于所有小于等于1的自然数,没有这个概念,它们既不是质数也不是合数。 质数的定义:对于大于1的自然数,如果这个数的约数只包含1和它本身,则这个

vcj1009784814的博客 1509
上一篇: 9-17每日一题:Leetcode36. 有效的数独
下一篇: 9-18每日一题:Nim游戏
Shirandexiaowo
博客等级 码龄7年 45粉丝 314原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Shirandexiaowo

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值