线性筛素数法

#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. 06_MyBatis,Spring,SpringMVC整合
  2. nvm 装 nodejs 重启终端失效的解决方法
  3. hdu 5182 PM2.5
  4. Java——面向接口编程
  5. python 验证数据类型函数
  6. Client-Side UI Automation Provider - WinForm Sample
  7. PHP读取CSV文件
  8. FreeRTOS软件定时器
  9. 采集抖音APP的10个经典方法
  10. css 修改文字基准线_css如何添加删除线?css text-decoration属性设置删除线(代码实例)...
  11. python父亲节礼物_盘点父亲节礼物,爸爸们的礼物也要用心挑选~
  12. 珍重了,我亲爱的朋友们
  13. 三面微软,四面雅虎,外企面经复盘总结,那些你不知道的面试技巧
  14. C语言某一身高下不同体重对应的BMI值表
  15. canvas制作印章
  16. 安装Dev c++后,编译文件出现未编译的解决方法
  17. Ajax——同步请求与异步请求
  18. 基于嵌入式ARM工控主板与X86工控主板的比较
  19. 业余数学牛人的数学自学心得(转)
  20. python语法糖的本质_科学网—Python语法糖之:列表解析、集合解析和字典解析 - 陈同的博文...

热门文章

  1. Meanshift and Camshift
  2. latex生成的pdf论文在打印时页码混乱的解决方法
  3. Java实现18位身份证号码的校验码计算校验
  4. 详解如何设计一套健康体检信息管理系统
  5. C语言程序设计谭浩强(第四版)期末复习重点
  6. 打开一个php网页出现2个ip,php根据ip地址查地区
  7. python爬虫毕业论文大纲参考模板_毕业论文提纲参考模板
  8. Qt安卓开发环境搭建
  9. 动易模板制作示例(三)
  10. Oracle GoldenGate 下载地址