Java >> Java tutorial >  >> Java

Harshad nummer i Java

I dette indlæg vil vi udvikle et Java-program for at kontrollere, om det givne nummer er et Harshad-nummer eller ej? Vi vil også finde alle Harshad-numre, som hører til et givet område. Senere vil vi udvikle et andet Java-program til at kontrollere flere Harshad-numre.

I matematik er et Harshad-tal i en given talbase et heltal, der er deleligt med summen af ​​dets cifre, når det skrives i denne base. Harshad-nummeret kaldes også et Niven-nummer . Den er opkaldt efter D. R. Kaprekar.

Java-program til at kontrollere, at det givne nummer er Harshad-nummer eller ej

import java.util.Scanner;

public class HarshadNumber {

   // method to check number is 
   // harshad number or not
   public static boolean isHarshad(int number) {

      // calculate sum of digits of the number
      int digitSum = sumOfDigits(number);

      if(number % digitSum == 0)
         return true;

      return false;
   }

   private static int sumOfDigits(int number) {

      int sum = 0;

      while(number != 0) {
        // add last digit to sum
        sum += number%10;

        // remove last digit
        number /= 10;
      }

      return sum;
   }

   public static void main(String[] args) {

      // declare variables
      int number = 0;
      boolean result = false;

      //create Scanner class object to take input
      Scanner scan = new Scanner(System.in);

      // take input from end-user
      System.out.print("Enter an integer number:: ");
      number = scan.nextInt();

      // check number is harshad number or not
      result = isHarshad(number);
      if(result)
      System.out.println(number +
                  " is a Harshad number");
      else
      System.out.println(number +
                  " is not a Harshad number");

      // close Scanner class object
      scan.close();
   }
}

Output for de forskellige test-cases:-

Indtast et heltal::9
9 er et Harshad-tal

Indtast et heltal::11
11 er ikke et Harshad-tal

Indtast et heltal::378
378 er et Harshad-tal

Se også:- Specialnummer, Magisk nummer, Armstrong-nummer, Perfekt nummer, Evil Number, Spionnummer, Sunny-nummer i Java

Java-program til at finde alle Harshad-numre i et givet område

import java.util.Scanner;

public class HarshadNumberInRange {

   // method to check number is 
   // Harshad number or not
   public static boolean isHarshad(int number) {

      // calculate sum of digits of the number
      int digitSum = sumOfDigits(number);

      if(number % digitSum == 0)
         return true;

      return false;
   }

   // method to find sum of digits
   private static int sumOfDigits(int number) {
      int sum = 0;

      while(number != 0) {
         // add last digit to sum
         sum += number%10;

         // remove last digit
         number /= 10;
      }

      return sum;
   }

   public static void main(String[] args) {

      // declare variables
      int minRange = 0, maxRange = 0;

      // create Scanner class object
      Scanner scan = new Scanner(System.in);

      // read inputs
      System.out.print("Enter min value of range:: ");
      minRange = scan.nextInt();
      System.out.print("Enter max value of range:: ");
      maxRange = scan.nextInt();

      // find all harshad number
      System.out.println("The Harshad numbers from "+
                minRange+" to "+ maxRange+" are:: ");

      for(int i=minRange; i<=maxRange; i++) {
         if(isHarshad(i))
            System.out.print(i+" ");
      }

      // close Scanner class object
      scan.close();
   }
}

Output:-

Indtast min. værdi for interval::1
Indtast maks. værdi for interval::100
Harshad-tallene fra 1 til 100 er::
1 2 3 4 5 6 7 8 9 10 12 18 20 21 24 27 30 36 40 42 45 48 50 54 60 63 70 72 80 81 84 90 100

Flere Harshad-nummer i Java

Når et Harshad-tal divideres med summen af ​​cifre og producerer et andet Harshad-tal, kaldes tallet et Multiple Harshad-tal . Eksempler på flere Harshad-numre er:- 7, 21, 378 og 6804

Eksempel:-
tal =6804
Sum af cifre =6+8+0+4 =18
6804 / 18 =378, så 6804 er et Harshad-tal.
Nu, summen af ​​cifrene 378 =18
378 / 18 =21 Så 378 er også et Harshad-tal.

Derfor er tallet 6804 et multiple Harshad-nummer .

Java-program til at kontrollere flere Harshad-numre

import java.util.Scanner;

public class MultipleHarshadNumber {

   // method to check number is 
   // harshad number or not
   public static boolean isHarshad(int number) {

      // calculate sum of digits of the number
      int digitSum = sumOfDigits(number);

      if(number % digitSum == 0)
         return true;

      return false;
   }

   // method to find sum of digits
   private static int sumOfDigits(int number) {

      int sum = 0;
      while(number != 0) {
         // add last digit to sum
         sum += number%10;

         // remove last digit
         number /= 10;
      }

      return sum;
   }

   // method to check number is 
   // multiple Harshad number or not
   public static boolean isMultipleHarshad(int number) {

      // first of all check the given 
      // number is harshad number or not
      if(! isHarshad(number))
      return false;

      // find sum of digits
      int sum = sumOfDigits(number);

      // find result after dividing 
      // by the sum of digits
      int newNumber = number/sum;

      // check new number is harshad number
      if(isHarshad(newNumber))
      return true;

      return false;
   }

   public static void main(String[] args) {

      // declare variables
      int number = 0;
      boolean result = false;

      //create Scanner class object to take input
      Scanner scan = new Scanner(System.in);

      // take input from end-user
      System.out.print("Enter an integer number:: ");
      number = scan.nextInt();

      // check number is Harshad number or not
      result = isHarshad(number);

      // display result
      if(result)
      System.out.println(number +
           " is a multiple Harshad number");
      else
      System.out.println(number +
           " is not a multiple Harshad number");

      // close Scanner class object
      scan.close();
   }
}

Output:-

Indtast et heltal::21
21 er et multiple Harshad-tal

Indtast et heltal::6805
6805 er ikke et multiple Harshad-tal


Java tag