This is my code, it is not producing any output. As I have started my loop from 100 so according to the logic used I should get answer as 153. But nothing is coming. Please help.
// Program to find the first Angstrom Number and display it!
public static void main(String[] args) {
int sum = 0;
int y, z;
System.out.println("Starting program");
for (int i = 100; i < 1000; i++) {
sum += (i % 10) * (i % 10) * (i % 10);
y = i / 10;
sum += (y % 10) * (y % 10) * (y % 10);
z = y / 10;
sum += z * z * z;
if (sum == i) {
System.out.println("The first Angstrom number is " + i);
break;
}
}
}
You should reset the sum in every step:
for (int i = 100; i < 1000; i++) {
sum = 0;
sum += (i%10) * (i%10) * (i%10);
....
}
You can find Armstrong number between two numbers by using this logic. Just change the values according to you need.
public class Armstrong {
public static void main(String[] args) {
int low = 999, high = 99999;
for(int number = low + 1; number < high; ++number) {
int digits = 0;
int result = 0;
int originalNumber = number;
// number of digits calculation
while (originalNumber != 0) {
originalNumber /= 10;
++digits;
}
originalNumber = number;
// result contains sum of nth power of its digits
while (originalNumber != 0) {
int remainder = originalNumber % 10;
result += Math.pow(remainder, digits);
originalNumber /= 10;
}
if (result == number)
System.out.print(number + " ");
}
}
}
Output of this program is:
1634 8208 9474 54748 92727 93084
public static int Power(int out,int res)
{
int count=res;
int temp=1;
while(count!=0)
{
temp=temp*out;
count--;
}
return temp;
}
public static int count1(int num)
{
int count=0;
while(num!=0)
{
num=num/10;
count++;
}
return count;
}
public static int isArmstrong(int num)
{
int out;
int sum=0;
int res=count1(num);
while(num!=0)
{
out=num%10;
sum=sum+Power(out,res);
num=num/10;
}
return sum;
}
public static void main(String[] args)
{
int start=10;
int end=100000;
for(int i=start;i<=end;i++)
{
int result=isArmstrong(i);
if(result==i)
{
System.out.println(i);
}
public class armstrongNumber
{
public void isArmstrong(String n)
{
char[] s=n.toCharArray();
int size=s.length;
int sum=0;
for(char num:s)
{int temp=1;
int i=Integer.parseInt(Character.toString(num));
for(int j=0;j<=size-1;j++)
{ temp *=i;}
sum +=temp;
}
if(sum==Integer.parseInt(n))
{
System.out.println(n+" is an Armstrong Number");
}
else
{
System.out.println(n+" is not an Armstrong Number");
}
}
public static void main(String[] args)
{
armstrongNumber am= new armstrongNumber();
am.isArmstrong("2");
am.isArmstrong("153");
am.isArmstrong("1634");
am.isArmstrong("231");
}
}
public class Armstrong {
public static int findArmStrong(int x, int y) {
if(x== getArmstrongSum(x)) return x;
else if(y== getArmstrongSum(y)) return y;
else return -1;
}
public static int getArmstrongSum(int num) {
int pow = String.valueOf(num).length();
return IntStream.iterate(num, i -> i / 10)
.limit(pow)
.map(i -> (int) Math.pow(i % 10, 3))
.sum();
}
public static void main(String[] args) {
System.out.println(findArmStrong(153, 154));
}
}
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.