Java >> Java tutorial >  >> Java

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


Java tag