Finding Armstrong number is again a great exercise for students The exercise involves clever use of modulus operator to extract the digits and then using those digits to perform calculations.
Armstrong Number : These are the special numbers which is equal to the sum of the cube of their own digits.
like 153. since 153= 13+53+33=1+125+27=153 cool isn't it. So how can you find them? Here is the logic.
Logic: use modulus operator to get the last digit of the number. so 153%10=3 (last digit). cube this number, 3*3*3=27, then save it to a variable. again now reduce the number 153. 153/10=15 (see the last digit will be removed :) ). repeat the process till this number becomes 0.
Code:
Armstrong Number : These are the special numbers which is equal to the sum of the cube of their own digits.
like 153. since 153= 13+53+33=1+125+27=153 cool isn't it. So how can you find them? Here is the logic.
Logic: use modulus operator to get the last digit of the number. so 153%10=3 (last digit). cube this number, 3*3*3=27, then save it to a variable. again now reduce the number 153. 153/10=15 (see the last digit will be removed :) ). repeat the process till this number becomes 0.
Code:
#include<stdio.h> int armstrong(int x) { //copy x to k int k=x; //start extracting its digit, // cube the digit and start saving it // we will use sum to save the total. int sum=0; int r=0; //r will be used for remainder while(k>0) { r=k%10; //now cude the remainder and add it to sum sum+=r*r*r; //reduce k by 10 k=k/10; } if(x==sum) { return(1); } else { return(0); } } int main() { int k=0; //n will be used how far we want to calculate int n; printf("\n Enter a number="); scanf("%d",&n); for(k=0;k<=n;k++) { if(armstrong(k)) { printf("\n Armstring number=%d",k); } } }
c++ programming code snippets for programmers
ReplyDeletecplusplus code | number is an armstrong number or not