关于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。