For Example: If user input number is 589, then we add all the individual digits of the number i.e., 5 + 8 + 9 = 22. We get 22. Now we add individual digits of number 22 i.e., 2 + 2 = 4. So Generic Root of number 589 is 4.
Generic Root: We keep adding individual digits of a number until we get single digit output.
Formula To Calculate Generic Root
generic_root = 1 + ( (number-1)%9 );
Source Code: C Program to Calculate Generic Root of a Number using Mathematical Formula
printf("Generic Root of %d is %d\n", num, 1+((num-1)%9) );
return 0;
}
#include < stdio.h >
int main()
{
int num, res;
printf("Enter a number above 10\n");
scanf("%d", &num);
printf("Generic Root of %d is %d\n", num, 1+((num-1)%9) );
return 0;
}
Output 1: Enter a number above 10 586 Generic Root of 586 is 1
Output 2: Enter a number above 10 8 Generic Root of 8 is 8
Output 3: Enter a number 589 Generic Root of 589 is 4
C Program to Calculate Generic Root of a Number using Mathematical Formula
For Example: If user input number is 65987, then we add all the individual digits of the number i.e., 6 + 5 + 9 + 8 + 7 = 35. We got 35. Now we add individual digits of number 35 i.e., 3 + 5 = 8. So Generic Root of number 65987 is 8.
Source Code: C Program to Calculate Generic Root of a Number using Ternary Operator
printf("Generic Root of %d is %d\n", num, (res = num % 9) ? res : 9 );
return 0;
}
#include < stdio.h >
int main()
{
int num, res;
printf("Enter a number above 10\n");
scanf("%d", &num);
printf("Generic Root of %d is %d\n", num, (res = num % 9) ? res : 9 );
return 0;
}
Output 1: Enter a number above 10 65987 Generic Root of 65987 is 8
Output 2: Enter a number above 10 8 Generic Root of 8 is 8
Output 3: Enter a number above 10 456 Generic Root of 456 is 6
Output 4: Enter a number above 10 78910 Generic Root of 78910 is 7
Output 5: Enter a number above 10 5555 Generic Root of 5555 is 2
C Program to Calculate Generic Root of a Number using Ternary Operator
Logic To Find Generic Root of a Number using Ternary Operator
(result = num % 9) ? result : 9;
OR
(num % 9) ? (num % 9) : 9;
We divide the user input number by 9 and store the remainder inside variable result. If the number is perfectly divisible by 9 or if the result is zero then we output 9 orelse we output the value present in variable result. Variable result will have the Generic Root of the user entered number. We are applying modular division on the user entered number. And we are dividing it by 9 because 9 is the biggest single digit number and by modulo division of number by 9 we get the Generic Root of the number.
For Example: If user input number is 12345, then we add all the individual digits of the number i.e., 1 + 2 + 3 + 4 + 5 = 15. We got 15. Now we add individual digits of number 15 i.e., 1 + 5 = 6. So Generic Root of number 12345 is 6.
Source Code: C Program to Find Generic Root of a Number
If user entered number is 1234. Num = 1234; temp = 1234; sum = 0;
Iteration 1 rem = temp % 10; rem = 1234 % 10; rem = 4;
sum = sum + rem sum = 0 + 4; sum = 4;
temp = temp / 10; temp = 1234 / 10; temp = 123;
Iteration 2 rem = temp % 10; rem = 123 % 10; rem = 3;
sum = sum + rem sum = 4 + 3; sum = 7;
temp = temp / 10; temp = 123 / 10; temp = 12;
Iteration 3 rem = temp % 10; rem = 12 % 10; rem = 2;
sum = sum + rem sum = 7 + 2; sum = 9;
temp = temp / 10; temp = 12 / 10; temp = 1;
Iteration 4 rem = temp % 10; rem = 1 % 10; rem = 1;
sum = sum + rem sum = 9 + 1; sum = 10;
temp = temp / 10; temp = 1 / 10; temp = 0;
Now inside while loop we keep checking for the condition temp = 0. Once this condition is true, we check if the value present in sum is greater than 9. i.e., we check if variable sum has double digit number. If that is true, then we copy the number present in variable sum to variable temp and we assign 0 to sum. Now the while loop continues until the variable sum has single digit number.
Once variable sum has single digit number in it, control exits the while loop and we out put the value of sum as Generic Root of the user entered number.