Tech Number Program i Java
I dette indlæg vil vi udvikle et Java-program for at kontrollere, at det givne nummer er et teknisk nummer eller ej? Og vi vil også finde alle tekniske numre i det givne område.
Et tal, der har et lige antal cifre, og når antallet af cifre opdeles i to halvdele, så er kvadratet af summen af disse halvdele lig med det samme tal, kaldes Tech number.
Eksempel på teknisk nummer:-
2025
Antal cifre =4 (lige)
Opdel 2025 i to halvdele, derefter
første halvdel =20
anden halvdel =25
summen af halvdelene =20+ 25 =45
kvadrat af summen af halvdelene =45*45 =2025
Derfor er 2025 et teknisk nummer. Et andet eksempel på teknisk nummer er:- 81, 2025, 3025, 9801, 494209, 998001
Procedure
Proceduren for at udvikle et program til at kontrollere antallet er et teknisk nummer på ikke,
1) Tag et tal
2) Find antallet af cifre i det givne tal
3) Hvis antallet af cifre ikke er lige, er tallet ikke et teknisk nummer
4) Beregn første halvdel og anden halvdel af tallet
5) Find summen af begge halvdele
6) beregn kvadratet af sumværdien
7) hvis tallet er lig summen, så er det et teknisk nummer ellers er det ikke et teknisk nummer.
Java-program til at kontrollere nummeret er teknisk nummer eller ej
import java.util.Scanner;
public class TechNumber {
private static boolean isTech(int number) {
// declare variables
int n = number; // temp variable to store number
int count = 0; // store number of digits
int firstHalf = 0; // first half of the number
int lastHalf = 0; // last half of the number
int sum = 0;
// count number of digits
while(n != 0) {
n /= 10;
count++;
}
// if number of digits is not even
// then number is not tech number
if(count%2!=0) return false;
// calculate halves
firstHalf = number / (int)Math.pow(10, count/2);
lastHalf = number % (int)Math.pow(10, count/2);
// calculate sum of halves
sum = firstHalf + lastHalf;
// check number is equal to
// square of sum or not
if(sum*sum == number)
return true;
return false;
}
public static void main(String[] args) {
// declare variables
int number = 0;
// read the input
Scanner scan = new Scanner(System.in);
System.out.print("Enter an integer number:: ");
number = scan.nextInt();
// check the number is tech number or not
if(isTech(number))
System.out.println(number+" is a"
+ " tech number");
else
System.out.println(number+" is not a"
+ " tech number");
// close Scanner class object
scan.close();
}
}
Output for de forskellige test-cases:-
Indtast et heltal::2025
2025 er et teknisk nummer
Indtast et heltal::2000
2000 er ikke et teknisk nummer
Se også:- Specialnummer, Magisk nummer, Armstrong-nummer, Perfekt nummer, Evil Number, Spionnummer, Sunny-nummer i Java
Java-program til at finde alle tekniske numre i et givet område
Ved hjælp af loops kan vi finde alle tekniske numre i det givne område. Nedenstående program demonstrerer det.
import java.util.Scanner;
public class TechNumberInRange {
private static boolean isTech(int number) {
// declare variables
int n = number; // temp variable to store number
int count = 0; // store number of digits
int firstHalf = 0; // first half of the number
int lastHalf = 0; // last half of the number
int sum = 0;
// count number of digits
while(n != 0) {
n /= 10;
count++;
}
// if number of digits is not even
// then number is not tech number
if(count%2!=0) return false;
// calculate halves
firstHalf = number / (int)Math.pow(10, count/2);
lastHalf = number % (int)Math.pow(10, count/2);
// calculate sum of halves
sum = firstHalf + lastHalf;
// check number is equal to
// square of sum or not
if(sum*sum == number)
return true;
return false;
}
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();
// check number
System.out.println("The tech numbers from "+
minRange+" to "+ maxRange+" are:: ");
for(int i=minRange; i<=maxRange; i++) {
if(isTech(i))
System.out.print(i+" ");
}
// close Scanner class object
scan.close();
}
}
Output for de forskellige test-cases:-
Indtast min. værdi for interval::1
Indtast maks. værdi for interval::100
De tekniske tal fra 1 til 100 er::
81
Indtast min. værdi for interval::100
Indtast maksimumværdi for interval::10000
De tekniske tal fra 100 til 10000 er::
2025 3025 9801
Indtast min. værdi for interval::10000
Indtast maks. værdi for interval::1000000
De tekniske numre fra 10000 til 1000000 er::
494209 998001