This program provides a menu to perform common number operations like factorial, prime check, palindrome check, GCD, and number reversal. Each task is handled in a separate function. The menu runs in a loop and exits when the user chooses option 6.
#include <stdio.h>
#include
#include
void factorialMenu() {
int n, fact = 1;
printf("Enter a number: ");
scanf("%d", &n);
if (n < 0) {
printf("Factorial not defined for negative numbers.\n");
return;
}
for (int i = 1; i <= n; i++) {
fact *= i;
}
printf("Factorial of %d = %d\n", n, fact);
}
void primeCheckMenu() {
int n, isPrime = 1;
printf("Enter a number: ");
scanf("%d", &n);
if (n <= 1) {
isPrime = 0;
} else {
for (int i = 2; i * i <= n; i++) {
if (n % i == 0) {
isPrime = 0;
break;
}
}
}
if (isPrime)
printf("%d is a Prime Number\n", n);
else
printf("%d is Not a Prime Number\n", n);
}
void palindromeMenu() {
char str[100];
int len, isPalindrome = 1;
printf("Enter a string: ");
scanf("%s", str);
len = strlen(str);
for (int i = 0; i < len / 2; i++) {
if (str[i] != str[len - i - 1]) {
isPalindrome = 0;
break;
}
}
if (isPalindrome)
printf("\"%s\" is a Palindrome\n", str);
else
printf("\"%s\" is Not a Palindrome\n", str);
}
void gcdMenu() {
int a, b, temp;
printf("Enter first number: ");
scanf("%d", &a);
printf("Enter second number: ");
scanf("%d", &b);
while (b != 0) {
temp = b;
b = a % b;
a = temp;
}
printf("GCD = %d\n", a);
}
void reverseMenu() {
int n, reversed = 0;
printf("Enter a number: ");
scanf("%d", &n);
int original = n;
while (n != 0) {
reversed = reversed * 10 + (n % 10);
n /= 10;
}
printf("Reversed Number = %d\n", reversed);
}
int main() {
int choice;
while (1) {
printf("\n--- Functional Calculator ---\n");
printf("1. Factorial\n");
printf("2. Prime Check\n");
printf("3. Palindrome Check (String)\n");
printf("4. GCD\n");
printf("5. Reverse Number\n");
printf("6. Exit\n");
printf("Enter your choice: ");
scanf("%d", &choice);
if (choice == 6) {
printf("Exiting the program. Goodbye!\n");
break;
}
switch (choice) {
case 1:
factorialMenu();
break;
case 2:
primeCheckMenu();
break;
case 3:
palindromeMenu();
break;
case 4:
gcdMenu();
break;
case 5:
reverseMenu();
break;
default:
printf("Invalid choice. Please select a valid option.\n");
}
}
return 0;
}