线性筛素数法

#include

#define N 10000

int n,i,j,ps,pr[N];

bool b[N];

int main()

{

scanf("%d",&n);

for(i=2;i<=n;i++)

{

if(!b[i]) pr[++ps] = i; // 如果没有被筛除,说明该数为素数,加入素数列表

for(j=1;j<=ps&&i*pr[j]<=n;j++)

{

b[i*pr[j]] = 1; // 筛除当前数与已知素数的乘积

if(i%pr[j]==0) break;

// 去除重复,保证时间复杂度(不加上这一句的话答案也正确,但是数据较大时时间延长了几倍)

// 这么做的原因就是,根据算术基本定理,

// 合数可以分解成若干不同质因数之积,那么筛除一个合数的方法就有多种,也就是会带来重复计算

// 所以考虑让每个合数只被最小的那一个质因数筛除

// 那么,如果i存在质因数pr[j],则大于pr[j]的质数不是i*pr[j]的最小质因数(因为已经有更小的质因数pr[j])

// 所以这个break可以减少冗余,从而达到时间复杂度上的保证

}

}

for(i=1;i<=ps;i++) printf("%d ",pr[i]);

// 最终2~n中素数存在pr数组中

return 0;

}

C语言素数的乘积,C语言,有关素数相关推荐

  1. c语言一个数等于素数的乘积,C语言实现判断一个数是否为素数并求100以内的所有素数...

    判断一个数是否为素数 算法思想 设一个正整数x,sqrt(x)为x开平方后的值,若x不为素数,则x=a*b,a,b为2~x-1之间的整数,且当2=< a <= sqrt(x)时,必有sqr ...

  2. c语言矩阵的乘积,c语言矩阵相乘

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 程序清单 #include&nbsp int&nbspmain(void) { &nbsp&nbsp&nbsp&a ...

  3. 整数n分解成素数乘积c语言,用C语言和汇编语言实现将1个整数分解成几个素数的乘积...

    任何1个大于2的整数都可以分解成几个素数的乘积.将1个整数分解成几个素数的乘积是个热门话题. 经常有人问到.本文试图用C语言和32位X86汇编语言给出一个比较好的实现.希望对c语言学习者和 汇编语言学 ...

  4. 整数n分解成素数乘积c语言,关于几种求素数的方法(C语言描述)

    求出3到50w范围内所有的素数. 这类问题在C语言题目中经常会遇见.同样,大素数的研究对于密码学也起到了重要的作用.那么对于C语言的初学者,该如何编写程序计算素数呢? 1. 首先从素数的定义来看,&q ...

  5. 用C语言实现将1个整数n分解成几个素数的乘积

    问题的提出:将一个整数分解素因数 根据算术基本定理,任何大于2的正整数都可以表示为素数的乘积,如果不考虑这些素数出现的次序,其 表示方式为唯一的.本题目的要求是输入一个正整数,将这个正整数显示为几个素 ...

  6. C语言素数的乘积,判断一个正整数是否有两个素数的乘积

    public static void main(String[] args) { int a = 44; if (isPrime(a)) { System.out.println("a是素数 ...

  7. c语言求n到m之间的素数和

    c语言求n到m之间的素数和 要实现的功能如下 完整源代码实现如下 要实现的功能如下 求n到m所有的素数,并对素数进行求和. 完整源代码实现如下 #include <stdio.h> #in ...

  8. PARI/GP 语言:从入门到实现大素数判定与大数分解

    PARI/GP 语言:从入门到实现大素数判定与大数分解 一.PARI/GP简介 二.下载 PARI/GP 三.PARI/GP 编程入门 1. 近似 2. 运算尽量被允许 3. 向量 4. 矩阵 四.大 ...

  9. 第2关:求解出n以内所有能被5整除的正整数的乘积-------C语言程序设计技术(循环结构程序设计1)

    第2关:求解出n以内所有能被5整除的正整数的乘积-------C语言程序设计技术(循环结构程序设计1) #include<stdio.h>int main(void){ /******** ...

  10. C语言_判断一个数是否为素数

    C语言_判断一个数是否为素数 程序目的 设计思路 具体实现 程序目的 判断一个数是否为素数. 设计思路 素数是指只能被1和它自身整除的数.如2,3,5,7,11等.因此,判断一个数是否为素数只用关心这 ...

最新文章

  1. Python.h: No such file or directory
  2. Rocket 架构设计
  3. DATA - RANGE OF
  4. linux监控nmon和analyser的使用
  5. [转]Device Context 设备环境 设备上下文 理解
  6. C语言目录操作 (Linux/Unix)
  7. php sqrt函数,sqrt函数怎么使用
  8. centos7默认字体_CentOS7终端的分辨率和字体修改
  9. ansible-playbook Roles include
  10. Understand Java hasCode() method
  11. 马哥SRE第七周课程作业
  12. impala ERROR: TransmitData() to 10.19.231.254:27000 failed: Network error107
  13. 《第一桶金怎么赚——淘宝开店创业致富一册通》一一1.2 创业者应具备的条件与经验...
  14. 模拟退huo算法的特点_模拟退火算法(有完整实例源代码)
  15. 武汉科技大学计算机专业怎样,武汉科技大学计算机专业就业情况如何
  16. 微信JSSDK invalid signature签名错误的解决方法
  17. 笔记本计算机在桌面显示器,解决办法:笔记本电脑如何关闭屏幕,但仍可以使用?...
  18. 三星临时取消Galaxy Fold中国发布会;视觉中国网站部分恢复上线?官方回应:并未恢复;特斯拉周一发布完全自动驾驶将网络直播 | 雷锋早报...
  19. com.google.guava包里面的相关简单方法
  20. Unity 3D 遮挡剔除(仅专业版) Occlusion Culling (Pro only)

热门文章

  1. MacOS Big Sur 11.4 (20F71) OC 0.7.0 / Cl 5135 / PE 三分区原版黑苹果镜像
  2. Pattern 模式器: Matcher 匹配器
  3. c 语言tcp实现电子词典项目
  4. 游戏公司2022秋招记录
  5. Java学习笔记 --- IDEA
  6. 统计功效(power)
  7. 动易 dw css不对,动易模板常用CSS修改实际操作技巧
  8. wine 运行QQ的问题
  9. 问道手游服务器修改,分享一下自己架设问道手游经验和教程【图文篇】
  10. Visual Studio 2008系列教程(一):VS 2008安装详解!