zoukankan      html  css  js  c++  java
  • 关于Java中的几个数论中的知识

    1、将一个正整数分解质因数。例如,输入90,则打印 90=2*3*3*5;

    import java.util.Scanner;
    
    /**
     * 分解质因数
     * @author Administrator
     *
     */
    public class Test2 {
    
        /**
         * @param args
         */
        public static void main(String[] args) {
    
            Scanner input = new Scanner(System.in);
            // 提示
            System.out.println("请输入一个正整数:");
            int number = input.nextInt();
    
            String str = "";
            int i = 2;
            for (i = 2; i < number; i++) {
                if (number % i == 0) {
                    str += i + "*";
                    number = number / i;
                    i--;
                }
            }
            str += i;
            System.out.println(number + "的分解质因素结果为:" + str);
    
        }
    
    }

    2、一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?

    /**
     * 一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?
     * @author Administrator
     *
     */
    public class Test {
    
        /**
         * @param args
         */
        public static void main(String[] args) {
            long k = 0;
            for (k = 1; k <= 100000l; k++) {
                if (Math.floor(Math.sqrt(k + 100)) == Math.sqrt(k + 100)
                        && Math.floor(Math.sqrt(k + 168)) == Math.sqrt(k + 168)) {
                    System.out.println(k);
                }
    
            }
        }
    
    }

    3、输入两个正整数m和n,求其最大公约数和最小公倍数。

    public class Test3 {
    
        /**
         * @param args
         */
        public static void main(String[] args) {
            
            // 参考示例:求24和60的最大公约数,先分解质因数,得24=2×2×2×3,60=2×2×3×5,24与60的全部公有的质因数是2、2、3,它们的积是2×2×3=12,所以,(24,60)=12。
            // 参考示例:求6和15的最小公倍数。先分解质因数,得6=2×3,15=3×5,6和15的全部公有的质因数是3,6独有质因数是2,15独有的质因数是5,2×3×5=30,30里面包含6的全部质因数2和3,还包含了15的全部质因数3和5,且30是6和15的公倍数中最小的一个,所以[6,15]=30。
            Scanner input =new  Scanner(System.in);
            
            System.out.println("请输入第一个数:");
            int a=input.nextInt(); // 第一个数
            System.out.println("请输入第二个数:");
            int b=input.nextInt(); // 第二个数
            
            int gongyue=0;  
            if(a<b)  
            {   //交换a、b的值  
                a=a+b;  
                b=a-b;  
                a=a-b;  
            }  
            if(a%b==0)  
            {  
                gongyue = b;  
            }  
            while(a % b>0)  
            {  
                a=a%b;  
                if(a<b)  
                {  
                    a=a+b;  
                    b=a-b;  
                    a=a-b;  
                }  
                if(a%b==0)  
                {  
                    gongyue = b;  
                }  
            }  
            
            System.out.println("最大公约数是:"+gongyue);
            
            int gongbei=(a*b)/gongyue;
            
            System.out.println("最小公倍数是:"+gongbei);
        }
    
    }

    几个知识点介绍:

    因数:假如a*b=c(a、b、c都是整数),那么我们称a和b就是c的因数。例如,1*2=2; 那么1和2就是2的因数。

    质数(prime number)又称素数,有无限个。质数定义为在大于1的自然数中,除了1和它本身以外不再有其他因数,这样的数称为质数。例如,2 只有1和2(他本身)这两个因数,所以2是质数。4 可以有2和2,也可以有1和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)

    合数,数学用语,英文名为Composite number,指自然数中除了能被1和本身整除外,还能被其他数(0除外)整除的数(如:4,6,8,9,10)。与之相对的是质数,而1既不属于质数也不属于合数。最小的合数是4。其中,完全数与相亲数是在它的基础上的。

    分解质因数(把合数分解成质数):把一个合数分解成若干个质因数的乘积的形式,即求质因数的过程叫做分解质因数。每个合数都可以写成几个质数相乘的形式,其中每个质数都是这个合数的因数,叫做这个合数的分解质因数。 分解质因数只针对合数。例如,4=2X2


    质因数分解法:把每个数分别分解质因数,再把各数中的全部公有质因数提取出来连乘,所得的积就是这几个数的最大公约数。


    例如:求24和60的最大公约数,先分解质因数,得24=2×2×2×3,60=2×2×3×5,24与60的全部公有的质因数是2、2、3,它们的积是2×2×3=12,所以,(24,60)=12。


    把几个数先分别分解质因数,再把各数中的全部公有的质因数和独有的质因数提取出来连乘,所得的积就是这几个数的最小公倍数。


    例如:求6和15的最小公倍数。先分解质因数,得6=2×3,15=3×5,6和15的全部公有的质因数是3,6独有质因数是2,15独有的质因数是5,2×3×5=30,30里面包含6的全部质因数2和3,还包含了15的全部质因数3和5,且30是6和15的公倍数中最小的一个,所以[6,15]=30。

  • 相关阅读:
    MYSQL转MSSQL
    SVN 服务器IP地址变更后客户端的修改
    gridview
    gridview外边距
    Android开发:自定义GridView/ListView数据源
    Android之Adapter用法总结
    collection set
    listview优化
    android应用开发全程实录-你有多熟悉listview
    android模块
  • 原文地址:https://www.cnblogs.com/xiaobudong/p/7446694.html
Copyright © 2011-2022 走看看