Heim  >  Artikel  >  Java  >  Java-Implementierungsbeispiel eines Primfaktoralgorithmus zum Zerlegen einer beliebigen Eingabezahl

Java-Implementierungsbeispiel eines Primfaktoralgorithmus zum Zerlegen einer beliebigen Eingabezahl

黄舟
黄舟Original
2017-10-18 10:22:071471Durchsuche

In diesem Artikel wird hauptsächlich die Java-Implementierung des Primfaktoralgorithmus zum Zerlegen beliebiger Eingabezahlen vorgestellt, einschließlich Java-Mathematikoperationen. Bedürftige Freunde können sich darauf beziehen.

Das Beispiel dieses Artikels beschreibt Java Implementierung der Zerlegung einer beliebigen Eingabezahl. Der Primfaktoralgorithmus. Geben Sie es wie folgt als Referenz an alle weiter:

Zerlegen Sie die Primfaktoren einer beliebigen Eingabezahl:

Konzept der Primfaktoren: beliebig zusammengesetzte Zahl Sie kann als Multiplikation mehrerer Primzahlen geschrieben werden. Jede Primzahl ist ein Faktor dieser zusammengesetzten Zahl, der als zerlegter Primfaktor dieser zusammengesetzten Zahl bezeichnet wird. Die Faktorisierung von Primfaktoren gilt nur für zusammengesetzte Zahlen.

Zum Beispiel: 12 = 2x2x3 18 = 2 x 3 x 3 usw.

Lassen Sie uns die Idee dieses Algorithmus erklären: Erstens: Wir schreiben zuerst eine Funktion, um Primzahlen zu finden Zahlen; zweitens: Wir erstellen eine Funktion, die Primzahlen zerlegt, und führen dann eine Primzahlfunktion ein, um zu bestimmen, ob es sich um eine Primzahl handelt Nur Referenz):

Laufergebnis:

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;
  }
}

Das obige ist der detaillierte Inhalt vonJava-Implementierungsbeispiel eines Primfaktoralgorithmus zum Zerlegen einer beliebigen Eingabezahl. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn