Write a program to print out all Armstrong numbers between 1 and 500.
If sum of cubes of each digit of the number is equal to the number itself,
then the number is called an Armstrong number.
For example,
153 = (1*1*1) + (5*5*5) + (3*3*3)
#include<stdio.h>
main()
{
int number, temp, digit1, digit2, digit3;
printf("Printing all Armstrong numbers between 1 and 500:\n\n");
number = 001;
while (number <= 500)
{
digit1 = number - ((number / 10) * 10);
digit2 = (number / 10) - ((number / 100) * 10);
digit3 = (number / 100) - ((number / 1000) * 10);
temp = (digit1*digit1*digit1) + (digit2*digit2*digit2) + (digit3*digit3*digit3);
if (temp == number)
{
printf("\nAmstrong Number:%d", temp);
}
number++;
}
}
The file can be found at:
Download File.
Sunday, July 23, 2006
Subscribe to:
Post Comments (Atom)
42 comments:
Hi Great... We can find the answers but upto 3 digits(999) only!..........Jai..
Ya, Thanks for that!
But what about numbers above 999????
hey thanks good and easy programing
Is armstrong no only valid for 3 digits?
Is armstrong no only valid for 3 digits?
m confused wid d def of armstrong... pls let me kno..
(C# Code)
long n, q, r, s, i;
Console.WriteLine("Enter the Number :"); n = Convert.ToInt64(Console.ReadLine());//Printf("enter the Number.");Scanf("%d",&n);
for (i = 0; i <= n; i++)
{ q = i;
s = 0;
while (q > 0)
{ r = q % 10;
s = s + r * r * r;
q = q / 10;
}
if (i == s)
Console.WriteLine("\n"+i+"\n");//This line says to Print 'i' to get desired Reuslt.
} Console.ReadLine();//getch();
check with this program and revert to me on sshakeerbaig@yahoo.com,sshakeerbaig@gmail.com.
I m not getting that how r v defining these digits 1,2,3....plz explain !!!
#include
#include
#include
void main()
{
int i=100,n,b,s;
clrscr();
for(i;i<=999;i++)
{
s=0;
n=i;
while(n>0)
{
b=n%10;
s=s+b*b*b;
n=n/10;
}
if(s==i)
{
printf("%d\n",s);
}
}
getch();
}
use "for looping" insted of while to find ans above 999
thanks
#include
#include
#include
void main()
{
long int a=1,b,c,d=1,e,f=0;
clrscr();
while(d<=20)
{
b=0;
f=0;
c=a;
do
{
c=c/10;
f++;
}
while(c>0);
c=a;
while(c>0)
{
e=c%10;
b=b+pow((double)e,(double)f);
c=c/10;
}
if(b==a)
{
printf("\n%ld",a);
d++;
a++;
}
else
{
a++;
}
}
getch();
}
1st include is stdio.h
2nd include is conio.h
3rd include is math.h
void main()
{
int start,end,i,d,temp,sum=0;
clrscr();
printf("\n Enter number of start and end:");
scanf("%d%d",&start,&end);
printf("\n Armstrong no.are:");
for(i=start;i<=end;i++)
{
temp=i;
sum=0;
do
{
d=temp%10;
sum=sum+d*d*d;
temp=temp/10;
}while(temp!=0);
if(i==sum)
{
printf("%d",i);
}
getch();
}
I HAVE A GOOD C PROGRAM VIA WHICH U CAN FIND ANY ARMSTRONG NO WITHIN INT RANGE....
AND THATS MUCH SIMPLE THAN THE GIVEN ABOVES!!!!!
use a for loop 4 counting the digits and then in pow use pow(r,c)..
then it will generate all the armstrongs no withing int range..
4 generation use a while loop at d beggining...
simple.......
#include
main()
{
int i,n,r,sum;
for(i=1;i<=500;i++)
{
n=i;
sum=0;
while(n>=1)
{
r=n%10;
sum=sum + r*r*r;
n=n/10;
}
if(sum==i)
printf("%d \n",i);
}
}
this is just complicating a simple program
everybody who posts their codes should execute them and post it. there are some blunders in codes.
for(int a=1;a<=999;a++)
{
num1=a/100;
num2=(a%100)/10;
num3=(a%10);
temp=(num1*num1*num1)+(num2*num2*num2)+(num3*num3*num3);
if(a==temp)
printf("%a is an armstrong number",a);
}
if anyone cums to know to print exact first 20amstrong no means....pls let me know
thanxx
#include
#include
int armstrong(int a);
int main()
{
int i,z;
for(i=0;i<=499;i++)
{
z=armstrong(i);
if(z==1)
printf("%d is armstrong \n",i);
}
getch();
}
int armstrong(int a)
{
int b,n,n1,result=0;
b=a;
while(b>0)
{
n1=b%10;
result=result+n1*n1*n1;
b=b/10;
}
if(result==a)
return 1;
else
return 0;
}
easy one......
#include
#include
int main()
{
int a,b=0,sum=0,c,d;
printf("ENTER A NUMBER:-");
scanf("%d",&a);
c=a;
while(a>0)
{
b=a%10;
a=a/10;
sum= (b*b*b) + sum;
}
if(sum==c)
printf("armstrong no....");
else
printf("not armstrong");
getch();
return 0;
}
i think cube is for three digits and square for two digits and something like dat...
But the first one is to simple.gr8
Armstrong numbers are the sum of their own digits to the power of the number of digits. As that is a slightly brief wording, let me give an example:
153 = 1³ + 5³ + 3³
Hence, the program should display nos. from 0-9 also.
int a = int.Parse(textBox1.Text);
while (a > 0)
{
j = a % 10;
s = s + (j * j * j);
a = a / 10;
}
if (s==int.Parse(textBox1.Text))
{
MessageBox.Show("Armstrong");
}
else
{
MessageBox.Show("Not a Armstrong");
}
to get for upto 3 digit you enter s=s+r*r*r*r;
upto 3 digit num...
enter s=s+r*r*r*r;
But Y did u use if statement?
My PROGRAMMING FOR ARMSTRONG NUMBERS (TILL 500).... I did it on my own, that too in my First attempt.... Yippeee....!!!
AARAV KOTHARI (IIT Delhi)
Here we go-
#include
#include
void main()
{
int n,m,l,k,p,a;
printf("ARMSTRONG NUMBERS (1-500)-\n\n1\n");
n=10;
while(n>=10 && n<=99)
{
l=n%10;
m=n/10;
a=l*l*l+m*m*m;
if(a==n)
{
printf("%d\n",n);
}
n++;
}
n=100;
while(n>=100 && n<=500)
{
l=n%10;
p=n/100;
k=n/10;
m=k%10;
a=l*l*l+p*p*p+m*m*m;
if(a==n)
{
printf("%d\n",n);
}
n++;
}
}
#include
Hello, very nice tutorial.
I have made a similar but somewhat different attempt on my blog.
with out if statement can we write,think once.u cannot ...
hello.thanks best and easy programming tutorial giving one of the most useful techniques here as publicly
Armstrong Defination Wrong
Program to check if a umber is an armstrong number or not...aNY NUMBER OF DIGITS.......GREAT PROGRAM BY {prog1999} (for GW Basic)-------
10 cls
20 input n:n1=n
30 while n<>0
40 D=N mod 10:S=S+d^3
50 n=int(n/10)
60 wend
70 IF S=N1 THEN PRINT "ARMSTRONG_NUMBER_FOUND" ELSE PRINT "ARMSTRONG_NUMBER_NOT_FOUND"
80 END
There are only 4 armstrong numbers
152,370,371,407
Why does the program shows 1 also as an armstrong number?
Tried this condition in if statement it worked,
if(temp==number && number!=1);
Post a Comment