이 글에서는 주로 입력 숫자를 분해하기 위한 Java 소인수 알고리즘 구현을 소개하며, Java 수학적 연산 관련 연산 기술이 필요한 친구는 이를 참조할 수 있습니다.
이 글의 예는 소인수 알고리즘의 Java 구현을 설명합니다. 입력 숫자를 분해합니다. 참조를 위해 모든 사람과 공유하세요. 세부 사항은 다음과 같습니다.
입력 숫자의 소인수 분해:
소인수 개념: 모든 합성수는 여러 소수의 곱셈으로 쓸 수 있습니다. 각 소수는 이 합성수의 인수이며, 이를 이 합성수의 분해소인수라고 합니다. 소인수 인수분해는 합성수에만 적용됩니다.
예: 12 = 2x2x3 18 = 2 x 3 x 3 등
이 알고리즘의 아이디어를 설명하겠습니다. 첫째: 먼저 소수를 찾는 함수를 작성합니다. 두 번째: 함수를 만듭니다. 소인수를 분해한 다음 소수 함수를 도입하여 소수인지 여부를 확인합니다.
코드는 다음과 같습니다(참조용):
package javastudy; import java.util.*; public class Testit3 { public static void main(String[] args) { Scanner in = new Scanner(System.in); int number; number = in.nextint(); factor(number); //函数调用 in.close(); //关流 } static void factor(int number) { if(isPrime(number)) //首先进行判断是否为素数,如果是就直接输出 { System.out.print(number); } for (int i = 2; i <= number - 1; i++) { if (number % i == 0) { System.out.print(i + "\t"); int num = number / i; //进行一次分解num就要变一次! if (isPrime(num)) { //判断是否为素数,是的话就直接输出这个数字 System.out.print(num); } else { //不是素数就继续分解 factor(number / i); //利用函数递归的思想 } // return ; break; //分解完了就退出 } } } //判断是否为素数的函数 static Boolean isPrime(int number) { for (int i = 2; i <= Math.sqrt(number); i++) { if (number % i == 0) { return false; } } return true; } }
연산 결과:
위 내용은 입력 숫자를 분해하기 위한 소인수 알고리즘의 Java 구현 예의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!