Top 25 C# Number System Coding Interview Questions: Solutions, Explanations, and Code Examples
1. Check if a Number is Prime
using System;
class Program
{
static bool IsPrime(int n)
{
if (n <= 1) return false;
for (int i = 2; i <= Math.Sqrt(n); i++)
{
if (n % i == 0)
return false;
}
return true;
}
static void Main()
{
int number = 29; // Test with any number
Console.WriteLine($"Is {number} prime? {IsPrime(number)}");
}
}
Output:
Is 29 prime? True
2. Find the GCD (Greatest Common Divisor) of Two Numbers
using System;
class Program
{
static int GCD(int a, int b)
{
while (b != 0)
{
int temp = b;
b = a % b;
a = temp;
}
return a;
}
static void Main()
{
int num1 = 56, num2 = 98;
Console.WriteLine($"GCD of {num1} and {num2} is: {GCD(num1, num2)}");
}
}
Output:
GCD of 56 and 98 is: 14
3. Find the LCM (Least Common Multiple) of Two Numbers
using System;
class Program
{
static int LCM(int a, int b)
{
return Math.Abs(a * b) / GCD(a, b);
}
static int GCD(int a, int b)
{
while (b != 0)
{
int temp = b;
b = a % b;
a = temp;
}
return a;
}
static void Main()
{
int num1 = 12, num2 = 18;
Console.WriteLine($"LCM of {num1} and {num2} is: {LCM(num1, num2)}");
}
}
Output:
LCM of 12 and 18 is: 36
4. Reverse an Integer
using System;
class Program
{
static int Reverse(int num)
{
int reversed = 0;
while (num != 0)
{
reversed = reversed * 10 + num % 10;
num /= 10;
}
return reversed;
}
static void Main()
{
int number = 12345;
Console.WriteLine($"Reversed number: {Reverse(number)}");
}
}
Output:
Reversed number: 54321
5. Check if a Number is a Palindrome
using System;
class Program
{
static bool IsPalindrome(int num)
{
int original = num, reversed = 0;
while (num != 0)
{
reversed = reversed * 10 + num % 10;
num /= 10;
}
return original == reversed;
}
static void Main()
{
int number = 121;
Console.WriteLine($"Is {number} a palindrome? {IsPalindrome(number)}");
}
}
Output:
Is 121 a palindrome? True
6. Find Factorial of a Number
using System;
class Program
{
static int Factorial(int n)
{
int fact = 1;
for (int i = 1; i <= n; i++)
{
fact *= i;
}
return fact;
}
static void Main()
{
int number = 5;
Console.WriteLine($"Factorial of {number} is: {Factorial(number)}");
}
}
Output:
Factorial of 5 is: 120
7. Count the Number of Digits in an Integer
using System;
class Program
{
static int CountDigits(int num)
{
int count = 0;
while (num != 0)
{
count++;
num /= 10;
}
return count;
}
static void Main()
{
int number = 12345;
Console.WriteLine($"Number of digits in {number} is: {CountDigits(number)}");
}
}
Output:
Number of digits in 12345 is: 5
8. Armstrong Number Check
using System;
class Program
{
static bool IsArmstrong(int num)
{
int original = num, sum = 0, digits = (int)Math.Log10(num) + 1;
while (num != 0)
{
sum += (int)Math.Pow(num % 10, digits);
num /= 10;
}
return original == sum;
}
static void Main()
{
int number = 153;
Console.WriteLine($"Is {number} an Armstrong number? {IsArmstrong(number)}");
}
}
Output:
Is 153 an Armstrong number? True
9. Fibonacci Series (Iterative and Recursive)
using System;
class Program
{
// Iterative approach
static void FibonacciIterative(int n)
{
int a = 0, b = 1, c;
Console.WriteLine(a);
Console.WriteLine(b);
for (int i = 2; i < n; i++)
{
c = a + b;
Console.WriteLine(c);
a = b;
b = c;
}
}
// Recursive approach
static int FibonacciRecursive(int n)
{
if (n <= 1)
return n;
return FibonacciRecursive(n - 1) + FibonacciRecursive(n - 2);
}
static void Main()
{
int n = 6; // First 6 Fibonacci numbers
Console.WriteLine("Fibonacci Series (Iterative):");
FibonacciIterative(n);
Console.WriteLine("\nFibonacci Series (Recursive):");
for (int i = 0; i < n; i++)
{
Console.WriteLine(FibonacciRecursive(i));
}
}
}
Output:
Fibonacci Series (Iterative):
0
1
1
2
3
5
Fibonacci Series (Recursive):
0
1
1
2
3
5
10. Check for Perfect Number
using System;
class Program
{
static bool IsPerfect(int num)
{
int sum = 0;
for (int i = 1; i <= num / 2; i++)
{
if (num % i == 0)
sum += i;
}
return sum == num;
}
static void Main()
{
int number = 6;
Console.WriteLine($"Is {number} a perfect number? {IsPerfect(number)}");
}
}
Output:
Is 6 a perfect number? True
Here are the next 15 questions along with their C# solutions:
11. Check for Strong Number
using System;
class Program
{
static bool IsStrongNumber(int num)
{
int sum = 0, original = num;
while (num != 0)
{
int digit = num % 10;
sum += Factorial(digit);
num /= 10;
}
return sum == original;
}
static int Factorial(int n)
{
int fact = 1;
for (int i = 1; i <= n; i++)
{
fact *= i;
}
return fact;
}
static void Main()
{
int number = 145; // Example of a strong number
Console.WriteLine($"Is {number} a Strong number? {IsStrongNumber(number)}");
}
}
Output:
Is 145 a Strong number? True
12. Find the Missing Number in an Array (1 to n)
using System;
class Program
{
static int FindMissingNumber(int[] arr, int n)
{
int totalSum = (n * (n + 1)) / 2;
int arrSum = 0;
foreach (var num in arr)
{
arrSum += num;
}
return totalSum - arrSum;
}
static void Main()
{
int[] arr = { 1, 2, 3, 5 }; // Missing number is 4
int n = 5; // The number should be between 1 to n
Console.WriteLine($"Missing number: {FindMissingNumber(arr, n)}");
}
}
Output:
Missing number: 4
13. Find Duplicate Number in an Array
using System;
class Program
{
static int FindDuplicate(int[] arr)
{
HashSet<int> set = new HashSet<int>();
foreach (var num in arr)
{
if (set.Contains(num))
return num;
set.Add(num);
}
return -1; // No duplicate
}
static void Main()
{
int[] arr = { 1, 2, 3, 4, 4 }; // Duplicate number is 4
Console.WriteLine($"Duplicate number: {FindDuplicate(arr)}");
}
}
Output:
Duplicate number: 4
14. Check if a Number is Power of Two
using System;
class Program
{
static bool IsPowerOfTwo(int num)
{
return num > 0 && (num & (num - 1)) == 0;
}
static void Main()
{
int number = 16;
Console.WriteLine($"Is {number} a power of two? {IsPowerOfTwo(number)}");
}
}
Output:
Is 16 a power of two? True
15. Check if a Number is Power of Three
using System;
class Program
{
static bool IsPowerOfThree(int num)
{
return num > 0 && (Math.Pow(3, Math.Round(Math.Log(num, 3))) == num);
}
static void Main()
{
int number = 27;
Console.WriteLine($"Is {number} a power of three? {IsPowerOfThree(number)}");
}
}
Output:
Is 27 a power of three? True
16. Add Two Numbers Without Using '+' Operator
using System;
class Program
{
static int AddWithoutPlus(int a, int b)
{
while (b != 0)
{
int carry = a & b; // Carry now contains common set bits of a and b
a = a ^ b; // Sum of bits of a and b where at least one of the bits is not set
b = carry << 1; // Carry is shifted by one so that adding it to a gives the required sum
}
return a;
}
static void Main()
{
int num1 = 5, num2 = 3;
Console.WriteLine($"Sum of {num1} and {num2} is: {AddWithoutPlus(num1, num2)}");
}
}
Output:
Sum of 5 and 3 is: 8
17. Count Set Bits in an Integer (Hamming Weight)
using System;
class Program
{
static int CountSetBits(int num)
{
int count = 0;
while (num > 0)
{
count += num & 1;
num >>= 1;
}
return count;
}
static void Main()
{
int number = 29; // Binary: 11101, Set bits = 4
Console.WriteLine($"Number of set bits in {number}: {CountSetBits(number)}");
}
}
Output:
Number of set bits in 29: 4
18. Binary to Decimal Conversion and Vice Versa
using System;
class Program
{
static int BinaryToDecimal(string binary)
{
return Convert.ToInt32(binary, 2);
}
static string DecimalToBinary(int decimalNum)
{
return Convert.ToString(decimalNum, 2);
}
static void Main()
{
string binary = "1101"; // Binary to Decimal
int decimalNum = 13; // Decimal to Binary
Console.WriteLine($"Binary {binary} to Decimal: {BinaryToDecimal(binary)}");
Console.WriteLine($"Decimal {decimalNum} to Binary: {DecimalToBinary(decimalNum)}");
}
}
Output:
Binary 1101 to Decimal: 13
Decimal 13 to Binary: 1101
19. Find the Square Root of a Number Without Using Built-in Function
using System;
class Program
{
static double SquareRoot(int num)
{
double x = num;
double y = 1;
double e = 0.000001; // Accuracy level
while (x - y > e)
{
x = (x + y) / 2;
y = num / x;
}
return x;
}
static void Main()
{
int number = 25;
Console.WriteLine($"Square root of {number} is: {SquareRoot(number)}");
}
}
Output:
Square root of 25 is: 5
20. Find All Divisors of a Number
using System;
class Program
{
static void FindDivisors(int num)
{
Console.WriteLine($"Divisors of {num} are:");
for (int i = 1; i <= num; i++)
{
if (num % i == 0)
Console.Write(i + " ");
}
}
static void Main()
{
int number = 28;
FindDivisors(number);
}
}
Output:
Divisors of 28 are:
1 2 4 7 14 28
21. Check for Happy Number
using System;
class Program
{
static bool IsHappy(int num)
{
HashSet<int> seen = new HashSet<int>();
while (num != 1 && !seen.Contains(num))
{
seen.Add(num);
num = SumOfSquaresOfDigits(num);
}
return num == 1;
}
static int SumOfSquaresOfDigits(int num)
{
int sum = 0;
while (num > 0)
{
int digit = num % 10;
sum += digit * digit;
num /= 10;
}
return sum;
}
static void Main()
{
int number = 19;
Console.WriteLine($"Is {number} a happy number? {IsHappy(number)}");
}
}
Output:
Is 19 a happy number? True
22. Sum of Digits Until Single Digit (Digital Root)
using System;
class Program
{
static int DigitalRoot(int num)
{
while (num >= 10)
{
int sum = 0;
while (num > 0)
{
sum += num % 10;
num /= 10;
}
num = sum;
}
return num;
}
static void Main()
{
int number = 12345;
Console.WriteLine($"Digital root of {number} is: {DigitalRoot(number)}");
}
}
Output:
Digital root of 12345 is: 6
23. Generate All Prime Numbers Less Than N (Sieve of Eratosthenes)
using System;
class Program
{
static void SieveOfEratosthenes(int n)
{
bool[] primes = new bool[n + 1];
for (int i = 0; i <= n; i++)
primes[i] = true;
for (int p = 2; p * p <= n; p++)
{
if (primes[p])
{
for (int i = p * p; i <= n; i += p)
primes[i] = false;
}
}
Console.WriteLine($"Prime numbers less than {n}:");
for (int p = 2; p < n; p++)
{
if (primes[p])
Console.Write(p + " ");
}
}
static void Main()
{
int n = 30;
SieveOfEratosthenes(n);
}
}
Output:
Prime numbers less than 30:
2 3 5 7 11 13 17 19 23 29
24. Convert Decimal to Roman Numeral and Vice Versa
using System;
class Program
{
static string DecimalToRoman(int num)
{
string[] romans = { "I", "IV", "V", "IX", "X", "XL", "L", "XC", "C", "CD", "D", "CM", "M" };
int[] values = { 1, 4, 5, 9, 10, 40, 50, 90, 100, 400, 500, 900, 1000 };
string result = "";
for (int i = values.Length - 1; i >= 0; i--)
{
while (num >= values[i])
{
result += romans[i];
num -= values[i];
}
}
return result;
}
static void Main()
{
int number = 58;
Console.WriteLine($"Decimal {number} to Roman: {DecimalToRoman(number)}");
}
}
Output:
Decimal 58 to Roman: LVIII
25. Add Two Large Numbers Represented as Strings
using System;
class Program
{
static string AddLargeNumbers(string num1, string num2)
{
int i = num1.Length - 1, j = num2.Length - 1, carry = 0;
string result = "";
while (i >= 0 || j >= 0 || carry != 0)
{
int digit1 = (i >= 0) ? num1[i] - '0' : 0;
int digit2 = (j >= 0) ? num2[j] - '0' : 0;
int sum = digit1 + digit2 + carry;
carry = sum / 10;
result = (sum % 10) + result;
i--; j--;
}
return result;
}
static void Main()
{
string num1 = "123456789123456789";
string num2 = "987654321987654321";
Console.WriteLine($"Sum of {num1} and {num2} is: {AddLargeNumbers(num1, num2)}");
}
}
Output:
Sum of 123456789123456789 and 987654321987654321 is: 1111111111111111110
0 Comments