Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >数学--数论--素数

数学--数论--素数

作者头像
风骨散人Chiam
发布于 2020-11-05 14:57:50
发布于 2020-11-05 14:57:50
43700
代码可运行
举报
文章被收录于专栏:CSDN旧文CSDN旧文
运行总次数:0
代码可运行
定义判断:
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
bool isPrime (int n)
{
	for(int i=2;i*i<=n;i++)
	{
		if(n%i==0) return false;
	}
	else return false;
}

埃氏筛法

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
int primes[N],cnt;
bool bprime[N];
void getPrime(int n){
    memset(bprime,false,sizeof(bprime));
    bprime[0]=true;
    bprime[1]=true;   
 
    for(int i=2;i<=n;i++){
        if(!bprime[i]){
            prime[cnt++]=i;
            for(LL j=i*2;j<=n;j+=i)
                bprime[j]=true;
        }
    }
}
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
int primes[N],cnt;
bool bPrime[N];
void getPrimes(int n){
    memset(bPrime,false,sizeof(bPrime));
 
    for(int i=2;i<=n;i++){
        if(!bPrime[i])
            primes[cnt++]=i;
 
        for(int j=0;j<cnt&&i*primes[j]<n;j++){
            bPrime[i*primes[j]]=true;
            if(i%primes[j]==0)
                break;
        }
    }
}

线筛(欧式筛)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#include<iostream>
#include<bitset>
using namespace std;
bitset<100000010>v;
int prime[6000001];
int m=0;
void primes(int n)
{
    for(int i=2; i*i<=n; i++)
    {
        if(!v[i])
        {
            for(int j=i*i; j<=n; j+=i)
                v[j]=1;
        }
    }
    for(int i=2; i<=n; i++)
        if(!v[i])
            prime[m++]=i;
    for(int i=0; i<m; i++)
        cout<<prime[i]<<endl;
}
int main()
{
    primes(1e3+20);
    return 0;
}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019/12/17 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
线性筛素数(探索中的不断优化)
工欲善其事必先利其器 首先素数是什么? 素数就是一个数除了1和他本身没有其他因数的数叫做质数。 合数即为对立概念 当然,1既不是素数也不是合数 素因子是什么? 由欧拉函数得到结论: 每一个合数都可以写成几个素数相乘的形式, 这些素数即为该合数的质因子
glm233
2020/09/28
6060
数论-素数
若两个素数相差2则称为一对孪生素数,求区间[1,n]内的孪生素数个数。 筛法素数打表,然后判断孪生,用前缀和记录。
唔仄lo咚锵
2020/09/15
6190
数据结构与算法面试题:给定非负整数 m 和 n,计算不大于 m 的数字中,素数的个数。(提示:算法原理为埃氏筛、线性筛)
简介:数据结构与算法面试题:给定非负整数 m 和 n,计算不大于 m 的数字中,素数的个数。(提示:算法原理为埃氏筛、线性筛)
GeekLiHua
2025/01/21
890
hdu 2421 Deciphering Password(约数个数问题)
大家好,又见面了,我是全栈君。 http://acm.hdu.edu.cn/showproblem.php?pid=2421 A^B 能够写成 p1^e1 * p2^e2 * …..*pk^ek。(A
全栈程序员站长
2022/07/08
1700
数学--数论--莫比乌斯函数
性质: 我们之前就提到过,莫比乌斯是积性函数,必然满足积性函数的性质 性质1:
风骨散人Chiam
2020/11/05
8260
LightOJ - 1197 区间素数筛模版
给t给样例,每个样例a,b两个数,求区间[a,b]内素数的个数,(1 ≤ a ≤ b < 2^31, b - a ≤ 100000).
用户2965768
2019/08/01
2750
CF思维联系–CodeForces - 222 C Reducing Fractions(数学+有技巧的枚举)
ACM思维题训练集合 To confuse the opponents, the Galactic Empire represents fractions in an unusual format. The fractions are represented as two sets of integers. The product of numbers from the first set gives the fraction numerator, the product of numbers from the second set gives the fraction denominator. However, it turned out that the programs that work with fractions in this representations aren’t complete, they lack supporting the operation of reducing fractions. Implement this operation and the Empire won’t forget you.
风骨散人Chiam
2020/11/03
4120
CF思维联系–CodeForces - 222 C Reducing Fractions(数学+有技巧的枚举)
Java实现质数筛的三种方法
今天在做一个算法题的时候遇到一个需要求质数的情况,但是本人比较菜只会暴力做法,所以在此记录学习一下质数筛选除了暴力以外的其它做法!
才疏学浅的木子
2023/10/17
3800
Java实现质数筛的三种方法
【HDU4947】GCD Array (莫比乌斯反演+树状数组)
BUPT2017 wintertraining(15) #5H HDU- 4947 题意 题解 官方题解: 代码 #include<cstdio> #include<cstring> #include
饶文津
2020/06/02
3090
【HDU4947】GCD Array (莫比乌斯反演+树状数组)
【Difference Between Primes HDU - 4715】【素数筛法打表+模拟】
这道题很坑,注意在G++下提交,否则会WA,还有就是a或b中较大的那个数的范围。。
_DIY
2019/09/29
2890
素数筛法(Eratosthenes筛法)
Eratosthenes筛法,又名埃氏筛法,对于求1~n区间内的素数,时间复杂度为n log n,对于10^6^ 以内的数比较合适,再超出此范围的就不建议用该方法了。 筛法的思想特别简单: 对于不超过n的每个非负整数p, 删除2p, 3p, 4p,…, 当处理完所有数之后, 还没有被删除的就是素数。
_DIY
2019/09/11
1.7K0
三种素数筛的比较
在自然数集中,质数的数量不多而且分布比较稀疏,对于一个整数N,不超过N的质数大概有N/lnN个,即每lnN个数中可能会有一个质数。
ACM算法日常
2018/12/13
1.4K0
质数筛与欧拉函数
我们提前设置一个标记数组prime[N] ,提前标记好数字的质数状态,这样就能减少重复判断。
fishhh
2022/08/30
6650
质数筛与欧拉函数
C/C++中的素数判定
✅作者简介:人工智能专业本科在读,喜欢计算机与编程,写博客记录自己的学习历程。 🍎个人主页:小嗷犬的博客 🍊个人信条:为天地立心,为生民立命,为往圣继绝学,为万世开太平。 🥭本文内容:C/C++中的素数判定 更多内容请见👇 C/C++中的基础数据类型 C与C++的最常用输入输出方式对比 C语言竟支持这些操作:C语言神奇程序分享 ---- 本文目录 1.什么是素数 2.素数的两种判断方法 2.1 暴力法 2.1.1 从 2 到 √n 2.1.2 6n-1与6n+1 2.2 筛法 2.2.1 埃
小嗷犬
2022/11/15
8450
C/C++中的素数判定
HDU 1695 GCD (欧拉函数,容斥原理)
GCD Time Limit: 6000/3000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 9046    Accepted Submission(s): 3351 Problem Description Given 5 integers: a, b, c, d, k, you're to find x in a...b, y in c...d that GCD(x, y)
ShenduCC
2018/04/26
5020
基础数论总结
从右往左。可以一直递推,然后到最后一项,然后快速幂求矩阵,矩阵最终的结果就是所求结果。更新:java的矩阵通用乘法可以表示为,可以将下列代码替换道ac代码中:
bigsai
2019/09/24
7520
基础数论总结
Prime Path(POJ - 3126)【BFS+筛素数】
1.题目主要就是给定你两个四位数的质数a,b,让你计算从a变到b共最小需要多少步。要求每次只能变1位,并且变1位后仍然为质数。
_DIY
2020/10/10
1K0
算法比赛——必备的数论知识
算术基本定理,又称为正整数的唯一分解定理,即:每个大于1的自然数,要么本身就是质数,要么可以写为2个或以上的质数的积,而且这些质因子按大小排列之后,写法仅有一种方式。
秋名山码神
2023/02/26
4160
算法比赛——必备的数论知识
【板子】gcd、exgcd、乘法逆元、快速幂、快速乘、筛素数、快速求逆元、组合数
1.gcd int gcd(int a,int b){ return b?gcd(b,a%b):a; } 2.扩展gcd )extend great common divisor ll exg
饶文津
2020/06/02
1.3K0
ACM刷题之路(二十一)大素数筛选 2019暑期集训 POJ 2689 Prime Distance
题目大致意思就是:告诉你一个s和e,求s和e之间靠的最近的两素数和离得最远的两素数,如果没有就输出There are no adjacent primes.这一句话。s和e范围为小于2,147,483,647的正整数,并且e和s最大相差不超过100W.
Designer 小郑
2023/08/01
1750
推荐阅读
相关推荐
线性筛素数(探索中的不断优化)
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验