2015.07.15——prime素数

prime素数

1.素数也叫质数,定义是一个数只能被1和它自身整除。

  素数从2开始,0,1都不是素数。

2.素数的判断(C++)

3.给定某个数,求小于这个数的所有素数

2.素数的判断(C++)  

1 bool   IsPrimer(int   n)
2   {
3       int   m=sqrt(n);
4       for(int i=2;i<=m;i++)      //只看从0-sqrt(n)
5       {
6           if(n%i==0)   return   false;   //被1,n之外的数整除
7       }
8       return   true;
9   } 

  不需要看0-n的数,只看0-sqrt(n)即可

3.给定某个数,求小于这个数的所有素数

  基于Sieve of Eratosthenes

  https://en.wikipedia.org/wiki/Sieve_of_Eratosthenes

  从2-sqrt(n)开始,将i*i排除,i*i + i 排除,这些均可以被i整除。除了这些之外的数即为素数

 1 class MyClass
 2 {
 3 public:
 4     vector<int> coutPrimes(int n)
 5     {
 6         vector<bool> prime(n, true);
 7         vector<int> res;
 8         prime[0] = false; prime[1] = false;
 9         int k = sqrt(n);
10         for (int i = 2; i <= k; i++)
11         {
12             if (prime[i])                                //每次判断prime[i]是否为true
13             {
14                 for (int j = i*i; j < n; j += i)
15                 {
16                     prime[j] = false;                    //若不是prime则置为false,下次判断直接略过
17                 }
18             }
19         }
20         for (int i = 0; i < n; i++)
21         {
22             if (prime[i]) res.push_back(i);            //将所有素数输出
23         }
24         return res;
25         //return count(prime.begin(), prime.end(), true);
26     }
27 };

如图所示

排除可以被2整除的                        排除可以被3整除的                           排除可以被5整除de

时间: 2024-08-15 00:58:58

2015.07.15——prime素数的相关文章

张珺 2015/07/15 个人文档

姓名 张珺 日期 中蓝公寓蓝芳园D507,2015/07/15 主要工作及心得 今天,我对我们的软件进行了部分的黑盒测试. 遇到的问题 在对软件进行测试的过程中,我发现了我们软件在设计中出现的一些问题,有设计缺陷也要简单的代码错误. 解决方法 对于简单代码错误直接修改,对于设计问题我们通过组内讨论商讨解决办法,再对现有软件进行修改.

陈嘉 2015/07/15 个人文档

姓名 陈嘉 日期 2015/7/15 主要工作及心得 根据老师昨天提出最好使用测试软件进行测试的问题,尝试利用JUnit进行测试. 首先,我从同学那里考来一份eclipse使用JUnit测试的库.放到我们的NetBeans里进行测试,通过修改build path, 增加库等方式都不能成功运行TestCase. 后来我重新下载了JUnit在NetBeans中的插件,经过了很多次尝试终于成功运行. 下一个任务就是编写脚本,考虑到所有待测情况,和待测情的预期结果.进行测试.并在测试过程中发现了一些小问

UloidDWAW 2015.v8.15.1.11236+FluidDRAW1.2油路仿真软件

UloidDWAW 2015.v8.15.1.11236+FluidDRAW1.2油路仿真软件 UloidDWAW 2015.v8.15.1.11236 1DVD油路仿真软件 FluidDRAW1.2(气动回路图设计软件及气路.油路仿真软件,简体中文版 FESTO产品: FESTO-FluidDRAW 4t DC2004.12.20(气动回路图设计软件及气路.油路仿真软件,简体中文版) FESTO-FluidSIM v3.6 Full(气动.液压原理图绘制及气路.油路仿真软件,简体中文版) FE

张珺 2015/07/13 个人文档

姓名 张珺 日期 2015/07/13 主要工作及心得 今天主要和任笑萱一起完成了对客户端中提供者的调试以及数据库的修改工作. 通过今天的调试工作,我对整个项目有了更深入的认识,对于用java编写客户端服务器程序的流程有了更进一步的了解. 遇到的问题 在今天的工作中,我们发现了之前构建数据库时未考虑到的一些问题,也发现了之前完成的任务中存在的一些错误. 最开始时无法登陆,服务器端不返回消息.次问题结局后,提供者界面中主要的问题主要在于对会员.服务编号进行验证时出现的问题,例如返回的信息不满足预期

张珺 2015/07/16 个人文档

姓名 张珺 日期 中蓝公寓蓝芳园D507,2015/07/16 主要工作及心得 今天我们开始进行文档的编写工作,对全部的文档进行了分工,我负责了概要设计说明书的编写.详细设计说明书中客户端里操作员相关内容的编写和对于操作员中相关操作的人工测试工作. 遇到的问题 报告中各项的编写要求.报告格式 解决方法 明天去找老师讨论有关报告的问题

张珺 2015/07/17 个人文档

姓名 张珺 日期 信息楼南406,中蓝公寓蓝芳园D507,2015/07/17 主要工作及心得 今天,我们先去找老师对程序进行了检查,并讨论了关于报告编写的问题.针对老师指出的问题,以及老师提出的意见.建议,我们在回来后对程序进行了修改.我主要负责对程序界面中中文显示及界面标题的问题进行修改.此外,我继续进行了报告的编写工作 遇到的问题 界面显示.提示信息中缺乏中文信息 解决方法 按照老师要求修改界面和对话框

张珺 2015/07/08 个人文档

姓名 张珺 日期 中蓝公寓蓝芳园D507,2015/07/08 主要工作及心得 在今天的设计工作中, 我完成了客户端数据接收及处理部分的编写工作. 通过今天的编写,我学会了Java中socket通信的相关知识,以及Java中一些相关度数据结构的使用方法. 遇到的问题 对于Java中预定义的一些数据结构的使用缺乏了解. 由于接收的数据的类定义是由小组中其他同学预先编写,对于其中各项的定义,接收时的数据存放方式的理解存在一些问题. 解决方法 通过上网等方式查找资料,了解了Java中的特殊数据结构的使

循环-15. 统计素数并求和

循环-15. 统计素数并求和(20) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 张彤彧(浙江大学) 本题要求统计给定整数M和N区间内素数的个数并对它们求和. 输入格式: 输入在一行中给出2个正整数M和N(1<=M<=N<=500). 输出格式: 在一行中顺序输出M和N区间内素数的个数以及它们的和,数字间以空格分隔. 输入样例: 10 31 输出样例: 7 143 1 #include<stdio.h> 2

张珺 2015/07/10 个人文档

姓名 张珺 日期 中蓝公寓蓝芳园D507,2015/07/10 主要工作及心得 今天,我参与了代码的合并工作,并和仁笑萱完成了对提供者的修改. 今天的调试,让我对程序的执行流程.数据库的连接等方面有了更深入的理解.同时,让我发现了一些之前编写时出现的错误. 遇到的问题 今天遇到的问题主要在提供者的修改方面: 无法连接数据库 点击按钮后无反应 返回信息不符合预期 解决方法 对于数据库的问题,我们通过上网查资料.询问其他同学等方式找到问题,原因是由于我们在另一台电脑上进行的对提供者进行的修改,但两台