Top 25 C# Number System Coding Interview Questions: Solutions, Explanations, and Code Examples

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

 


Post a Comment

0 Comments