计算质数

package test.com.ict.compent.amazom;

import java.util.ArrayList;
import java.util.List;

public class MathPrime {
    public static void main(String[] args) {
        List<Integer> add = new MathPrime().mathPrime(100);
        for (Integer integer : add) {
            System.out.print(integer+",");
        }
    }

    public List<Integer> mathPrime(int num){
        List<Integer> list=new ArrayList<Integer>(); 

        while(true){
            boolean a=false;
            Integer zhishu = zhishu(num);
            list.add(zhishu);
            if(zhishu==num){
                a=true;
            }else{
                num=num/zhishu;
            }
            if(a){
                break;
            }
        }

        return list;
    }

    public Integer zhishu(int num){
        int a=0;
        for (int i = 2; i < num; i++) {
            if(num%i!=0){
                continue;
            }else{
                a=i;
                break;
            }
        }
        if(a==0){
            a=num;
        }
        return a;

    }

}
时间: 2024-10-18 08:14:46

计算质数的相关文章

采用三种方法计算质数,并比较运行时间

#include<iostream> #include<time.h> #include<vector> using namespace std; #define N 100000000 char a[N/8+1]; class Time { clock_t clockBegin; clock_t clockEnd; public: void Start() { clockBegin = clock(); } int End() { clockEnd = clock()

Eratosthenes筛选法计算质数

<C和指针>第6章第4道编程题: 质数就是只能被1和本身整除的数.Eratosthenes筛选法是一种计算质数的有效方法.这个算法的第一步就是写下所有从2至某个上限之间的所有整数.在算法的剩余部分,遍历整个列表并剔除所有不是质数的整数. 后面的步骤是这样的.找到列表中的第1个不被剔除的数(也就是2),然后将列表后面所有逢双的数都剔除,因为它们都可以被2整除,因此不是质数.接着,再回到列表的头部重新开始,此时列表中第一个尚未被剔除的第1个数是3,所以在3之后把每逢第3个数(3的倍数)剔除.完成这

计算质数-埃里克森筛法(间隔黄金武器)

素数,不同的质数,各种各样的问题总是遇到的素数. 以下我们来说一下求素数的一种比較有效的算法. 就是筛法.由于这个要求得1-n区间的素数仅仅须要O(nloglogn)的时间复杂度. 以下来说一下它的思路. 思路:如今又1-n的数字.素数嘛就是除了1和本身之外没有其它的约数.所以有约数的都不是素数. 我们从2開始往后遍历,是2的倍数的都不是素数.所以我们把他们划掉 然后如今从2往后就是3了 由于3的前面没有能整除3的,所以3是素数,然后3的倍数全都不是素数.我们接着划掉. 然后就是5了.由于4是2

【算法】计算质数

static boolean zhishu(int a) { int b=a/2; int i=2; for(;i<=b;i++) { if(a%i==0) return false; b=a/i; } return true; } 原文地址:https://www.cnblogs.com/LPworld/p/11175362.html

质数 判断

---恢复内容开始--- 质数是指除了1和它本身以外,不能被任何整数整除的数,例如17就是质数,因为它不能被2~16的任一整数整除. 思路:因此判断一个整数m是否是质数,只需把m被 2 ~ m-1 之间的每一个整数去除,如果都不能被整除,那么m就是一个质数. 例题:计算100-200之间的所有质数之和 int sum = 0; //累计计算质数之和 for (int i = 100; i <= 200; i++) {     //判断i是不是质数     int num = 0;     for

正则表达式与扩展正则表达式

正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符.及这些特定字符的组合,组成一个"规则字符串",这个"规则字符串"用来表达对字符串的一种过滤逻辑.通常被用来检索.替换那些符合某个模式(规则)的文本.其主要应用对象是文本,因此它在各种文本编辑器场合都有应用. 贪婪模式与懒惰模式 正则表达式默认的情况下,会在满足匹配条件下尽可能的匹配更多内容.如 a.*b,用他来匹配 aabab ,它会匹配整个 aabab ,而不会只匹配到 aab 为止,这就是贪

使用sysbench进行压力测试

sysbench是一款开源的多线程性能测试工具,可以执行CPU/内存/线程/IO/数据库等方面的性能测试.数据库目前支持MySQL/Oracle/PostgreSQL/Drizzle,它主要包括以下几种方式的测试: cpu性能 磁盘io性能 调度程序性能 内存分配及传输速度 POSIX线程性能 数据库性能(OLTP基准测试) 机器配置 [[email protected] ~]# grep -iE 'MemTotal|MemFree' /proc/meminfo MemTotal: 805806

Delphi xe7并行编程快速入门(转)

http://blog.csdn.net/henreash/article/details/41315183 现在多数设备.计算机都有多个CPU单元,即使是手机也是多核的.但要在开发中使用多核的优势,却需要一些技巧,花费时间编写额外的代码.好了,现在可以使用Delphi做并行编程了. 在Delphi.C++ Builder和RAD Studio XE7中,有一个简化并行运行任务的库,叫做并行编程库. 并行编程库在System.Threading单元中,其中提供了很多有用的特性,可方便的应用在已有

常用正则表达式(网上收集的)

常用的正则表达式 常用正则表达式 正则表达式用于字符串处理.表单验证等场合,实用高效.现将一些常用的表达式收集于此,以备不时之需. 用户名:/^[a-z0-9_-]{3,16}$/ 密码:/^[a-z0-9_-]{6,18}$/ 十六进制值:/^#?([a-f0-9]{6}|[a-f0-9]{3})$/ 电子邮箱:/^([a-z0-9_\.-]+)@([\da-z\.-]+)\.([a-z\.]{2,6})$/ URL:/^(https?:\/\/)?([\da-z\.-]+)\.([a-z\.