Что такое номер Армстронга?
В числе Армстронга сумма степеней отдельных цифр равна самому числу.
Другими словами, справедливо следующее уравнение
xy..z = xn + yn+.....+ zn
n — количество цифр в номере
Например, это трехзначное число Армстронга
370 = 33 + 73 + o3 = 27 + 343 + 0 = 370
Примеры чисел Армстронга
0, 1, 4, 5, 9, 153, 371, 407, 8208, etc.
Давайте напишем это в программе:
Java-программа, чтобы проверить, является ли число Армстронг номер
- //ChecktempNumber is Armstrong or not using while loop
- package com.guru99;
- public class ArmstrongNumber {
- public static void main(String[] args) {
- int inputArmstrongNumber = 153; //Input number to check armstrong
- int tempNumber, digit, digitCubeSum = 0;
- tempNumber = inputArmstrongNumber;
- while (tempNumber != 0)
- {
- /* On each iteration, remainder is powered by thetempNumber of digits n
- */
- System.out.println("Current Number is "+tempNumber);
- digit =tempNumber % 10;
- System.out.println("Current Digit is "+digit);
- //sum of cubes of each digits is equal to thetempNumber itself
- digitCubeSum = digitCubeSum + digit*digit*digit;
- System.out.println("Current digitCubeSum is "+digitCubeSum);
- tempNumber /= 10;
- }
- //check giventempNumber and digitCubeSum is equal to or not
- if(digitCubeSum == inputArmstrongNumber)
- System.out.println(inputArmstrongNumber + " is an Armstrong Number");
- else
- System.out.println(inputArmstrongNumber + " is not an Armstrong Number");
- }
- }
Вывод
Current Number is 153 Current Digit is 3 Current digitCubeSum is 27 Current Number is 15 Current Digit is 5 Current digitCubeSum is 152 Current Number is 1 Current Digit is 1 Current digitCubeSum is 153 153 is an Armstrong Number
Java-программа для печати чисел Армстронга от 0 до 999
- //ChecktempNumber is Armstrong or not using while loop
- package com.guru99;
- public class ArmstrongNumber {
- public static void main(String[] args) {
- int tempNumber, digit, digitCubeSum;
- for (int inputArmstrongNumber = 0; inputArmstrongNumber < 1000; inputArmstrongNumber++) {
- tempNumber = inputArmstrongNumber;
- digitCubeSum = 0;
- while (tempNumber != 0) {
- /* On each iteration, remainder is powered by thetempNumber of digits n
- */
- digit = tempNumber % 10;
- //sum of cubes of each digits is equal to thetempNumber itself
- digitCubeSum = digitCubeSum + digit * digit * digit;
- tempNumber /= 10;
- }
- //check giventempNumber and digitCubeSum is equal to or not
- if (digitCubeSum == inputArmstrongNumber)
- System.out.println(inputArmstrongNumber + " is an Armstrong Number");
- }
- }
- }
Вывод
0 is an Armstrong Number 1 is an Armstrong Number 153 is an Armstrong Number 370 is an Armstrong Number 371 is an Armstrong Number 407 is an Armstrong Number