Java program za iskanje faktorja števila

V tem programu se boste naučili najti faktorje številke z uporabo zanke for in while v Javi.

Če želite razumeti ta primer, morate poznati naslednje programske teme Java:

  • Java za zanko
  • Java while in do … while Loop

Faktorial pozitivnega števila n je podan z:

 faktorijel od n (n!) = 1 * 2 * 3 * 4 * … * n 

Primer 1: Poiščite faktorja števila s pomočjo zanke for

 public class Factorial ( public static void main(String() args) ( int num = 10; long factorial = 1; for(int i = 1; i <= num; ++i) ( // factorial = factorial * i; factorial *= i; ) System.out.printf("Factorial of %d = %d", num, factorial); ) )

Izhod

 Faktorijev 10 = 3628800

V tem programu smo zanko for uporabili za zanko skozi vsa števila med 1 in dano številko num (10), zmnožek vsake številke, dokler ni num, je shranjen v spremenljivki faktorije.

Dolgo smo namesto int uporabili za shranjevanje velikih rezultatov faktorja. Vendar še vedno ni dovolj velik, da bi shranil vrednost večjih števil (recimo 100).

Za rezultate, ki jih ni mogoče shraniti v dolgi spremenljivki, uporabimo BigIntegerspremenljivko, navedeno v java.mathknjižnici.

Primer 2: Poiščite Factoriala številke z uporabo BigInteger

 import java.math.BigInteger; public class Factorial ( public static void main(String() args) ( int num = 30; BigInteger factorial = BigInteger.ONE; for(int i = 1; i <= num; ++i) ( // factorial = factorial * i; factorial = factorial.multiply(BigInteger.valueOf(i)); ) System.out.printf("Factorial of %d = %d", num, factorial); ) )

Izhod

 Faktorijev od 30 = 265252859812191058636308480000000

Tu namesto longuporabljamo BigIntegerspremenljivko faktorijel.

Ker *tega ni mogoče uporabiti z BigInteger, namesto tega uporabljamo multiply()za izdelek. BigIntegerZa množenje je treba vnesti tudi num .

Prav tako lahko za rešitev te težave uporabimo tudi zanko while.

Primer 3: Poiščite Factoriala števila s pomočjo zanke while

 public class Factorial ( public static void main(String() args) ( int num = 5, i = 1; long factorial = 1; while(i <= num) ( factorial *= i; i++; ) System.out.printf("Factorial of %d = %d", num, factorial); ) )

Izhod

 Faktorijev od 5 = 120

V zgornjem programu moramo za razliko od zanke for povečati vrednost i znotraj telesa zanke.

Čeprav sta oba programa tehnično pravilna, je v tem primeru bolje uporabiti for. To je zato, ker je znano število ponovitev (do števila).

Obiščite to stran in se naučite najti faktorije števila z uporabo rekurzije.

Zanimive Članki...