zoukankan      html  css  js  c++  java
  • 素数_面试中常考

    概念

    只有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内的所有质素:

     1 /**
     2  * 
     3  */
     4 package com.b510.parmnumber;
     5 
     6 /**
     7  * 质数又称素数。指在一个大于1的自然数中,除了1和此整数自身外,不能被其他自然数整除的数
     8  * @author hongten(hongtenzone@foxmail.com)<br>
     9  * @date 2013-5-22
    10  */
    11 public class MyMethod {
    12     public static void main(String[] args) {
    13         int result = getTimes();
    14         System.out.println("100以内的质素有 ["+result+"]个!");
    15     }
    16     
    17     /**
    18      * 获取质素的个数
    19      * @return
    20      */
    21     public static int getTimes(){
    22         int result = 0;
    23         for (int i = 2, j = 0; i <= 100; i++) {
    24             if (prime(i)) {
    25                 System.out.printf("%5d", i);
    26                 j++;
    27                 if (j % 5 == 0 && j != 0) {
    28                     System.out.println();
    29                 }
    30             }
    31             result = j;
    32         }
    33         return result;
    34     }
    35     
    36     /**
    37      * 判断是否为素数的方法
    38      * 
    39      * @param num 
    40      * @return
    41      */
    42     public static boolean prime(int num) {
    43         //2本身是质素,所以这里需要首先判断
    44         if (num == 2)
    45             return true;
    46         boolean flag = true;
    47         //如果当num大于2的时候,循环2到(num-1),如果在循环过程中
    48         //有被num整除的数,说明num不是质素
    49         for (int m = 2; m <= (num - 1); m++) {
    50             if (num % m == 0) {
    51                 flag = false;
    52                 break;
    53             }
    54         }
    55         return flag;
    56     }
    57 }

    运行效果:

        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]个!
  • 相关阅读:
    javaScript hook
    封装
    javascript 数字验证
    new 运算符
    指针
    js中的call及apply
    每行显示2条数据的分页
    less语言特性(二) —— 混合
    less语言特性(一) —— 变量
    理解响应式布局设计
  • 原文地址:https://www.cnblogs.com/hongten/p/hongten_prime.html
Copyright © 2011-2022 走看看