Java program za pronalaženje faktora broja

U ovom programu naučit ćete pronaći faktorijel broja koji koristi petlju for i while u Javi.

Da biste razumjeli ovaj primjer, trebali biste imati znanje o sljedećim temama programiranja Java:

  • Java za petlju
  • Java while and do … while Loop

Faktorijal pozitivnog broja n daje:

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

Primjer 1: Pronađite faktorijel broja pomoću petlje 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); ) )

Izlaz

 Faktorijal od 10 = 3628800

U ovom programu koristili smo for petlju za petlju kroz sve brojeve između 1 i zadanog broja num (10), a umnožak svakog broja dok se num pohrani u varijablu faktorijela.

Koristili smo long umjesto int za pohranu velikih rezultata faktorijela. Međutim, još uvijek nije dovoljno velik za pohranu vrijednosti većih brojeva (recimo 100).

Za rezultate koji se ne mogu pohraniti u dugačku varijablu koristimo BigIntegervarijablu deklariranu u java.mathknjižnici.

Primjer 2: Pronađite faktorijel broja pomoću BigInteger-a

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

Izlaz

 Faktorijal od 30 = 265252859812191058636308480000000

Ovdje, umjesto long, koristimo BigIntegervarijabilni faktorijel.

Budući da *se ne može koristiti sa BigInteger, umjesto toga koristimo multiply()za proizvod. Također, num bi trebao biti lijevan BigIntegerza množenje.

Isto tako, također možemo koristiti while petlju za rješavanje ovog problema.

Primjer 3: Pronađite faktorijel broja pomoću petlje 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); ) )

Izlaz

 Faktorijal od 5 = 120

U gornjem programu, za razliku od for petlje, moramo povećati vrijednost i unutar tijela petlje.

Iako su oba programa tehnički ispravna, u ovom je slučaju bolje koristiti for loop. To je zato što je poznat broj ponavljanja (do broja).

Posjetite ovu stranicu da biste naučili pronaći faktorijel broja pomoću rekurzije.

Zanimljivi članci...