Java-program til at kontrollere Smith-nummer
I den forrige artikel har vi diskuteret Java-program til at tjekke mysterienummer
I denne artikel skal vi forstå, hvad Smith-nummer er, og hvordan vi kan kontrollere, om et tal er Smith eller ej i Java med eksempler.
Program for at kontrollere Smith-nummer
Smith-tal er tal, hvis sum af cifre af alle dets primfaktorer bortset fra 1 og summen af dets cifre er ens.
Eksempel:
- 85:Sum =8+5 =13; Prime Factors(5,17)
Summen af cifre af dens primfaktorer =5+1+7 =13 Smith-tal
- 999:Sum =9+9+9 =27; Prime Factors(3,3,3,37)
Summen af cifre af dets primfaktorer =3+3+3+3+7 =19 Ikke et Smith-tal
I ovenstående eksempler er tallet 85 et Smith-tal, da dets sum af cifre og summen af cifre af dets primfaktorer er ens, dvs. 13. 999 er dog ikke et Smith-tal, da begge numre er forskellige.
Hvis du er ny til Java og vil lære Java-kodningsfærdighederne for hurtigt. Prøv at øve kerneprogrammerne i Java ved hjælp af den tilgængelige liste over Java-baserede programmer.
Fremgangsmåde:
- Vi beder brugeren om at indtaste et nummer og gemme det .
- Så beregner vi primfaktorerne og tilføjer derefter deres cifre og gemmer dem. Derefter lægges cifrene i nummeret sammen.
- Hvis begge summer er lige store, siges tallet at være et Smith-tal.
Program:
Lad os se programmet for at forstå det mere klart.
import java.util.Scanner; public class SmithNumber{ public static void main(String args[]) { //Tanuming the number as input from the user using scanner class Scanner scan = new Scanner(System.in); System.out.print("Enter a number : "); int num = scan.nextInt(); // Checks whether the number is Smith number or not if(primeFactorSum(num)==digitSum(num)) { System.out.println(num+" is a Smith number"); } else { System.out.println(num+" is Not a Smith number"); } } // Returns the sum of digits of the prime factors static int primeFactorSum(int num) { int i=2, sum=0; while(num>1) { if(num%i==0) { sum=sum+digitSum(i); num=num/i; } else { do { i++; } while(!isPrime(i)); } } return sum; } //function finds the sum of digits of the given numbers static int digitSum(int num) { int sum=0; while(num>0) { sum=sum+num%10; num=num/10; } //returns the sum of digits of the number return sum; } //function checks if the factor is prime or not static boolean isPrime(int num) { boolean flag=true; int div=2; while(div<Math.sqrt(num)) { if(num%div==0) { flag=false; } div++; } return flag; } }
Output: Case-1 Enter a number : 19 19 is a Smith number Case-2 Enter a number : 699 699 is Not a Smith number
Er du i tvivl om, hvordan du søger hjælp fra fageksperter og lærer Java-sproget? Gå med disse grundlæggende Java-programmeringseksempler og prøv at kode dem alle på egen hånd, og tjek derefter med den nøjagtige kode leveret af ekspertprogrammører.
Relaterede Java-programmer:
- Java-program til at kontrollere Strontio-nummer
- Java-program til at kontrollere Xylem og Phloem-nummer
- Java-program til at kontrollere Abundant Number
- Java-program til at kontrollere mangelfuldt nummer