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