首页 > 学院 > 开发设计 > 正文

算法

2019-11-14 10:43:57
字体:
来源:转载
供稿:网友

只有1和它本身两个正因数的自然数,叫质数(PRime Number)。

(如:由2÷1=2,2÷2=1,可知2的因数只有1和它本身2这两个约数,所以2就是质数。

与之相对立的是合数:“除了1和它本身两个因数外,还有其它因数的数,叫合数。

”如:4÷1=4,4÷2=2,4÷4=1,很显然,4的因数除了1和它本身4这两个因数以外,还有因数2,所以4是合数。)100以内的质数有:2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97,在100内共有25个质数。注:

(1)1既不是质数也不是合数。因为它的约数有且只有1这一个因数。(2)2和3是所有素数中唯一两个连着的数。(3)2是唯一一个为偶数的质数。

下面用java实现打印出1到100内的所有质素:

/** *  */package com.b510.parmnumber;/** * 质数又称素数。指在一个大于1的自然数中,除了1和此整数自身外,不能被其他自然数整除的数 * @author hongten(hongtenzone@Foxmail.com)<br> * @date 2013-5-22 */public class MyMethod {    public static void main(String[] args) {        int result = getTimes();        System.out.println("100以内的质素有 ["+result+"]个!");    }        /**     * 获取质素的个数     * @return     */    public static int getTimes(){        int result = 0;        for (int i = 2, j = 0; i <= 100; i++) {            if (prime(i)) {                System.out.printf("%5d", i);                j++;                if (j % 5 == 0 && j != 0) {                    System.out.println();                }            }            result = j;        }        return result;    }        /**     * 判断是否为素数的方法     *      * @param num      * @return     */    public static boolean prime(int num) {        //2本身是质素,所以这里需要首先判断        if (num == 2)            return true;        boolean flag = true;        //如果当num大于2的时候,循环2到(num-1),如果在循环过程中        //有被num整除的数,说明num不是质素        for (int m = 2; m <= (num - 1); m++) {            if (num % m == 0) {                flag = false;                break;            }        }        return flag;    }}


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表