Episode 7 — DSA with JavaScript / 7.7 — Math Problems and Algorithms

7.7 — Interview Questions: Math Problems

<< Overview


Beginner

Q1. How do you check if a number is prime?

Answer: Check divisibility from 2 to √n. O(√n) time.

function isPrime(n) {
    if (n < 2) return false;
    for (let i = 2; i * i <= n; i++) if (n % i === 0) return false;
    return true;
}

Q2. What is the Euclidean algorithm for GCD?

Answer: Repeatedly replace (a,b) with (b, a%b) until b=0. O(log min(a,b)).

function gcd(a, b) { while (b) { [a, b] = [b, a % b]; } return a; }

Q3. How do you reverse a number?

Answer: Extract digits with %10 and build reversed number.

function reverse(n) {
    let r = 0;
    while (n > 0) { r = r * 10 + n % 10; n = Math.floor(n / 10); }
    return r;
}

Q4. What is an Armstrong number?

Answer: Sum of digits^(digit count) equals the number. E.g., 153 = 1³+5³+3³.


Q5. How does the Sieve of Eratosthenes work?

Answer: Mark multiples of each prime starting from 2. Time: O(n log log n).


Intermediate

Q6. Explain fast exponentiation.

Answer: Reduce O(n) to O(log n) by squaring: x^n = (x^(n/2))^2 for even n.


Q7. How do you count trailing zeros in n!?

Answer: Count factors of 5: floor(n/5) + floor(n/25) + floor(n/125) + ...

function trailingZeros(n) {
    let count = 0;
    while (n >= 5) { n = Math.floor(n / 5); count += n; }
    return count;
}

Q8. What is modular arithmetic and why is it important?

Answer: Perform operations under a modulus to prevent overflow in competitive programming. (ab)%m = ((a%m)(b%m))%m.


Q9. How to compute nCr efficiently?

Answer: Multiply and divide incrementally: result = result*(n-i)/(i+1) for i in 0..r-1.


Q10. What is a perfect number?

Answer: Sum of proper divisors equals the number. E.g., 6 = 1+2+3.


Advanced

Q11. Explain modular exponentiation.

Answer: Compute base^exp % mod in O(log exp) using repeated squaring.


Q12. What is Euler's totient function?

Answer: φ(n) counts integers 1..n coprime to n. For prime p: φ(p)=p-1.


Q13. How to find the prime factorization of a number?

Answer: Divide by smallest factors from 2 upward. O(√n).

function primeFactors(n) {
    const factors = [];
    for (let d = 2; d * d <= n; d++) {
        while (n % d === 0) { factors.push(d); n /= d; }
    }
    if (n > 1) factors.push(n);
    return factors;
}

Q14. What are Catalan numbers?

Answer: C(n) = (2n)! / ((n+1)! * n!). Used in: valid parentheses, BST count, polygon triangulation.


Quick-fire table

#QuestionAnswer
1Prime check time?O(√n)
2GCD algorithm?Euclidean — O(log min(a,b))
3Sieve time?O(n log log n)
4Fast power time?O(log n)
5Trailing zeros in n!?Count factors of 5
6LCM formula?a*b / gcd(a,b)
7Armstrong 153?1³+5³+3³ = 153 ✓
8nCr relation?C(n,r) = C(n-1,r-1) + C(n-1,r)
9Modular inverse?a^(p-2) mod p (Fermat)
10Digital root?1 + (n-1) % 9 for n>0

Rapid self-check cards

SC-001

  • Q: GCD algorithm?
  • A: Euclidean: gcd(a,b) = gcd(b, a%b)

SC-002

  • Q: Prime check?
  • A: Test divisors 2..√n

SC-003

  • Q: Sieve complexity?
  • A: O(n log log n)

SC-004

  • Q: Fast power?
  • A: Square and multiply — O(log n)

SC-005

  • Q: LCM formula?
  • A: a*b / gcd(a,b)

SC-006

  • Q: Trailing zeros in n!?
  • A: Count multiples of 5, 25, 125...

SC-007

  • Q: What is modular arithmetic?
  • A: Operations under a modulus to prevent overflow

SC-008

  • Q: nCr efficiently?
  • A: Multiply/divide incrementally to avoid factorial overflow

SC-009

  • Q: Armstrong number?
  • A: Digit sum of d^k equals number (k=digit count)

SC-010

  • Q: Perfect number?
  • A: Sum of proper divisors equals number

SC-011

  • Q: GCD algorithm?
  • A: Euclidean: gcd(a,b) = gcd(b, a%b)

SC-012

  • Q: Prime check?
  • A: Test divisors 2..√n

SC-013

  • Q: Sieve complexity?
  • A: O(n log log n)

SC-014

  • Q: Fast power?
  • A: Square and multiply — O(log n)

SC-015

  • Q: LCM formula?
  • A: a*b / gcd(a,b)

SC-016

  • Q: Trailing zeros in n!?
  • A: Count multiples of 5, 25, 125...

SC-017

  • Q: What is modular arithmetic?
  • A: Operations under a modulus to prevent overflow

SC-018

  • Q: nCr efficiently?
  • A: Multiply/divide incrementally to avoid factorial overflow

SC-019

  • Q: Armstrong number?
  • A: Digit sum of d^k equals number (k=digit count)

SC-020

  • Q: Perfect number?
  • A: Sum of proper divisors equals number

SC-021

  • Q: GCD algorithm?
  • A: Euclidean: gcd(a,b) = gcd(b, a%b)

SC-022

  • Q: Prime check?
  • A: Test divisors 2..√n

SC-023

  • Q: Sieve complexity?
  • A: O(n log log n)

SC-024

  • Q: Fast power?
  • A: Square and multiply — O(log n)

SC-025

  • Q: LCM formula?
  • A: a*b / gcd(a,b)

SC-026

  • Q: Trailing zeros in n!?
  • A: Count multiples of 5, 25, 125...

SC-027

  • Q: What is modular arithmetic?
  • A: Operations under a modulus to prevent overflow

SC-028

  • Q: nCr efficiently?
  • A: Multiply/divide incrementally to avoid factorial overflow

SC-029

  • Q: Armstrong number?
  • A: Digit sum of d^k equals number (k=digit count)

SC-030

  • Q: Perfect number?
  • A: Sum of proper divisors equals number

SC-031

  • Q: GCD algorithm?
  • A: Euclidean: gcd(a,b) = gcd(b, a%b)

SC-032

  • Q: Prime check?
  • A: Test divisors 2..√n

SC-033

  • Q: Sieve complexity?
  • A: O(n log log n)

SC-034

  • Q: Fast power?
  • A: Square and multiply — O(log n)

SC-035

  • Q: LCM formula?
  • A: a*b / gcd(a,b)

SC-036

  • Q: Trailing zeros in n!?
  • A: Count multiples of 5, 25, 125...

SC-037

  • Q: What is modular arithmetic?
  • A: Operations under a modulus to prevent overflow

SC-038

  • Q: nCr efficiently?
  • A: Multiply/divide incrementally to avoid factorial overflow

SC-039

  • Q: Armstrong number?
  • A: Digit sum of d^k equals number (k=digit count)

SC-040

  • Q: Perfect number?
  • A: Sum of proper divisors equals number

SC-041

  • Q: GCD algorithm?
  • A: Euclidean: gcd(a,b) = gcd(b, a%b)

SC-042

  • Q: Prime check?
  • A: Test divisors 2..√n

SC-043

  • Q: Sieve complexity?
  • A: O(n log log n)

SC-044

  • Q: Fast power?
  • A: Square and multiply — O(log n)

SC-045

  • Q: LCM formula?
  • A: a*b / gcd(a,b)

SC-046

  • Q: Trailing zeros in n!?
  • A: Count multiples of 5, 25, 125...

SC-047

  • Q: What is modular arithmetic?
  • A: Operations under a modulus to prevent overflow

SC-048

  • Q: nCr efficiently?
  • A: Multiply/divide incrementally to avoid factorial overflow

SC-049

  • Q: Armstrong number?
  • A: Digit sum of d^k equals number (k=digit count)

SC-050

  • Q: Perfect number?
  • A: Sum of proper divisors equals number

SC-051

  • Q: GCD algorithm?
  • A: Euclidean: gcd(a,b) = gcd(b, a%b)

SC-052

  • Q: Prime check?
  • A: Test divisors 2..√n

SC-053

  • Q: Sieve complexity?
  • A: O(n log log n)

SC-054

  • Q: Fast power?
  • A: Square and multiply — O(log n)

SC-055

  • Q: LCM formula?
  • A: a*b / gcd(a,b)

SC-056

  • Q: Trailing zeros in n!?
  • A: Count multiples of 5, 25, 125...

SC-057

  • Q: What is modular arithmetic?
  • A: Operations under a modulus to prevent overflow

SC-058

  • Q: nCr efficiently?
  • A: Multiply/divide incrementally to avoid factorial overflow

SC-059

  • Q: Armstrong number?
  • A: Digit sum of d^k equals number (k=digit count)

SC-060

  • Q: Perfect number?
  • A: Sum of proper divisors equals number

SC-061

  • Q: GCD algorithm?
  • A: Euclidean: gcd(a,b) = gcd(b, a%b)

SC-062

  • Q: Prime check?
  • A: Test divisors 2..√n

SC-063

  • Q: Sieve complexity?
  • A: O(n log log n)

SC-064

  • Q: Fast power?
  • A: Square and multiply — O(log n)

SC-065

  • Q: LCM formula?
  • A: a*b / gcd(a,b)

SC-066

  • Q: Trailing zeros in n!?
  • A: Count multiples of 5, 25, 125...

SC-067

  • Q: What is modular arithmetic?
  • A: Operations under a modulus to prevent overflow

SC-068

  • Q: nCr efficiently?
  • A: Multiply/divide incrementally to avoid factorial overflow

SC-069

  • Q: Armstrong number?
  • A: Digit sum of d^k equals number (k=digit count)

SC-070

  • Q: Perfect number?
  • A: Sum of proper divisors equals number

SC-071

  • Q: GCD algorithm?
  • A: Euclidean: gcd(a,b) = gcd(b, a%b)

SC-072

  • Q: Prime check?
  • A: Test divisors 2..√n

SC-073

  • Q: Sieve complexity?
  • A: O(n log log n)

SC-074

  • Q: Fast power?
  • A: Square and multiply — O(log n)

SC-075

  • Q: LCM formula?
  • A: a*b / gcd(a,b)

SC-076

  • Q: Trailing zeros in n!?
  • A: Count multiples of 5, 25, 125...

SC-077

  • Q: What is modular arithmetic?
  • A: Operations under a modulus to prevent overflow

SC-078

  • Q: nCr efficiently?
  • A: Multiply/divide incrementally to avoid factorial overflow

SC-079

  • Q: Armstrong number?
  • A: Digit sum of d^k equals number (k=digit count)

SC-080

  • Q: Perfect number?
  • A: Sum of proper divisors equals number

SC-081

  • Q: GCD algorithm?
  • A: Euclidean: gcd(a,b) = gcd(b, a%b)

SC-082

  • Q: Prime check?
  • A: Test divisors 2..√n

SC-083

  • Q: Sieve complexity?
  • A: O(n log log n)

SC-084

  • Q: Fast power?
  • A: Square and multiply — O(log n)

SC-085

  • Q: LCM formula?
  • A: a*b / gcd(a,b)

SC-086

  • Q: Trailing zeros in n!?
  • A: Count multiples of 5, 25, 125...

SC-087

  • Q: What is modular arithmetic?
  • A: Operations under a modulus to prevent overflow

SC-088

  • Q: nCr efficiently?
  • A: Multiply/divide incrementally to avoid factorial overflow

SC-089

  • Q: Armstrong number?
  • A: Digit sum of d^k equals number (k=digit count)

SC-090

  • Q: Perfect number?
  • A: Sum of proper divisors equals number

SC-091

  • Q: GCD algorithm?
  • A: Euclidean: gcd(a,b) = gcd(b, a%b)

SC-092

  • Q: Prime check?
  • A: Test divisors 2..√n

SC-093

  • Q: Sieve complexity?
  • A: O(n log log n)

SC-094

  • Q: Fast power?
  • A: Square and multiply — O(log n)

SC-095

  • Q: LCM formula?
  • A: a*b / gcd(a,b)

SC-096

  • Q: Trailing zeros in n!?
  • A: Count multiples of 5, 25, 125...

SC-097

  • Q: What is modular arithmetic?
  • A: Operations under a modulus to prevent overflow

SC-098

  • Q: nCr efficiently?
  • A: Multiply/divide incrementally to avoid factorial overflow

SC-099

  • Q: Armstrong number?
  • A: Digit sum of d^k equals number (k=digit count)

SC-100

  • Q: Perfect number?
  • A: Sum of proper divisors equals number

SC-101

  • Q: GCD algorithm?
  • A: Euclidean: gcd(a,b) = gcd(b, a%b)

SC-102

  • Q: Prime check?
  • A: Test divisors 2..√n

SC-103

  • Q: Sieve complexity?
  • A: O(n log log n)

SC-104

  • Q: Fast power?
  • A: Square and multiply — O(log n)

SC-105

  • Q: LCM formula?
  • A: a*b / gcd(a,b)

SC-106

  • Q: Trailing zeros in n!?
  • A: Count multiples of 5, 25, 125...

SC-107

  • Q: What is modular arithmetic?
  • A: Operations under a modulus to prevent overflow

SC-108

  • Q: nCr efficiently?
  • A: Multiply/divide incrementally to avoid factorial overflow

SC-109

  • Q: Armstrong number?
  • A: Digit sum of d^k equals number (k=digit count)

SC-110

  • Q: Perfect number?
  • A: Sum of proper divisors equals number

SC-111

  • Q: GCD algorithm?
  • A: Euclidean: gcd(a,b) = gcd(b, a%b)

SC-112

  • Q: Prime check?
  • A: Test divisors 2..√n

SC-113

  • Q: Sieve complexity?
  • A: O(n log log n)

SC-114

  • Q: Fast power?
  • A: Square and multiply — O(log n)

SC-115

  • Q: LCM formula?
  • A: a*b / gcd(a,b)

SC-116

  • Q: Trailing zeros in n!?
  • A: Count multiples of 5, 25, 125...

SC-117

  • Q: What is modular arithmetic?
  • A: Operations under a modulus to prevent overflow

SC-118

  • Q: nCr efficiently?
  • A: Multiply/divide incrementally to avoid factorial overflow

SC-119

  • Q: Armstrong number?
  • A: Digit sum of d^k equals number (k=digit count)

SC-120

  • Q: Perfect number?
  • A: Sum of proper divisors equals number

SC-121

  • Q: GCD algorithm?
  • A: Euclidean: gcd(a,b) = gcd(b, a%b)

SC-122

  • Q: Prime check?
  • A: Test divisors 2..√n

SC-123

  • Q: Sieve complexity?
  • A: O(n log log n)

SC-124

  • Q: Fast power?
  • A: Square and multiply — O(log n)

SC-125

  • Q: LCM formula?
  • A: a*b / gcd(a,b)

SC-126

  • Q: Trailing zeros in n!?
  • A: Count multiples of 5, 25, 125...

SC-127

  • Q: What is modular arithmetic?
  • A: Operations under a modulus to prevent overflow

SC-128

  • Q: nCr efficiently?
  • A: Multiply/divide incrementally to avoid factorial overflow

SC-129

  • Q: Armstrong number?
  • A: Digit sum of d^k equals number (k=digit count)

SC-130

  • Q: Perfect number?
  • A: Sum of proper divisors equals number

SC-131

  • Q: GCD algorithm?
  • A: Euclidean: gcd(a,b) = gcd(b, a%b)

SC-132

  • Q: Prime check?
  • A: Test divisors 2..√n

SC-133

  • Q: Sieve complexity?
  • A: O(n log log n)

SC-134

  • Q: Fast power?
  • A: Square and multiply — O(log n)

SC-135

  • Q: LCM formula?
  • A: a*b / gcd(a,b)

SC-136

  • Q: Trailing zeros in n!?
  • A: Count multiples of 5, 25, 125...

SC-137

  • Q: What is modular arithmetic?
  • A: Operations under a modulus to prevent overflow

SC-138

  • Q: nCr efficiently?
  • A: Multiply/divide incrementally to avoid factorial overflow

SC-139

  • Q: Armstrong number?
  • A: Digit sum of d^k equals number (k=digit count)

SC-140

  • Q: Perfect number?
  • A: Sum of proper divisors equals number

SC-141

  • Q: GCD algorithm?
  • A: Euclidean: gcd(a,b) = gcd(b, a%b)

SC-142

  • Q: Prime check?
  • A: Test divisors 2..√n

SC-143

  • Q: Sieve complexity?
  • A: O(n log log n)

SC-144

  • Q: Fast power?
  • A: Square and multiply — O(log n)

SC-145

  • Q: LCM formula?
  • A: a*b / gcd(a,b)

SC-146

  • Q: Trailing zeros in n!?
  • A: Count multiples of 5, 25, 125...

SC-147

  • Q: What is modular arithmetic?
  • A: Operations under a modulus to prevent overflow

SC-148

  • Q: nCr efficiently?
  • A: Multiply/divide incrementally to avoid factorial overflow

SC-149

  • Q: Armstrong number?
  • A: Digit sum of d^k equals number (k=digit count)

SC-150

  • Q: Perfect number?
  • A: Sum of proper divisors equals number

SC-151

  • Q: GCD algorithm?
  • A: Euclidean: gcd(a,b) = gcd(b, a%b)

SC-152

  • Q: Prime check?
  • A: Test divisors 2..√n

SC-153

  • Q: Sieve complexity?
  • A: O(n log log n)

SC-154

  • Q: Fast power?
  • A: Square and multiply — O(log n)

SC-155

  • Q: LCM formula?
  • A: a*b / gcd(a,b)

SC-156

  • Q: Trailing zeros in n!?
  • A: Count multiples of 5, 25, 125...

SC-157

  • Q: What is modular arithmetic?
  • A: Operations under a modulus to prevent overflow

SC-158

  • Q: nCr efficiently?
  • A: Multiply/divide incrementally to avoid factorial overflow

SC-159

  • Q: Armstrong number?
  • A: Digit sum of d^k equals number (k=digit count)

SC-160

  • Q: Perfect number?
  • A: Sum of proper divisors equals number

SC-161

  • Q: GCD algorithm?
  • A: Euclidean: gcd(a,b) = gcd(b, a%b)

SC-162

  • Q: Prime check?
  • A: Test divisors 2..√n

SC-163

  • Q: Sieve complexity?
  • A: O(n log log n)

SC-164

  • Q: Fast power?
  • A: Square and multiply — O(log n)

SC-165

  • Q: LCM formula?
  • A: a*b / gcd(a,b)

SC-166

  • Q: Trailing zeros in n!?
  • A: Count multiples of 5, 25, 125...

SC-167

  • Q: What is modular arithmetic?
  • A: Operations under a modulus to prevent overflow

SC-168

  • Q: nCr efficiently?
  • A: Multiply/divide incrementally to avoid factorial overflow

SC-169

  • Q: Armstrong number?
  • A: Digit sum of d^k equals number (k=digit count)

SC-170

  • Q: Perfect number?
  • A: Sum of proper divisors equals number

SC-171

  • Q: GCD algorithm?
  • A: Euclidean: gcd(a,b) = gcd(b, a%b)

SC-172

  • Q: Prime check?
  • A: Test divisors 2..√n

SC-173

  • Q: Sieve complexity?
  • A: O(n log log n)

SC-174

  • Q: Fast power?
  • A: Square and multiply — O(log n)

SC-175

  • Q: LCM formula?
  • A: a*b / gcd(a,b)

SC-176

  • Q: Trailing zeros in n!?
  • A: Count multiples of 5, 25, 125...

SC-177

  • Q: What is modular arithmetic?
  • A: Operations under a modulus to prevent overflow

SC-178

  • Q: nCr efficiently?
  • A: Multiply/divide incrementally to avoid factorial overflow

SC-179

  • Q: Armstrong number?
  • A: Digit sum of d^k equals number (k=digit count)

SC-180

  • Q: Perfect number?
  • A: Sum of proper divisors equals number

SC-181

  • Q: GCD algorithm?
  • A: Euclidean: gcd(a,b) = gcd(b, a%b)

SC-182

  • Q: Prime check?
  • A: Test divisors 2..√n

SC-183

  • Q: Sieve complexity?
  • A: O(n log log n)

SC-184

  • Q: Fast power?
  • A: Square and multiply — O(log n)

SC-185

  • Q: LCM formula?
  • A: a*b / gcd(a,b)

SC-186

  • Q: Trailing zeros in n!?
  • A: Count multiples of 5, 25, 125...

SC-187

  • Q: What is modular arithmetic?
  • A: Operations under a modulus to prevent overflow

SC-188

  • Q: nCr efficiently?
  • A: Multiply/divide incrementally to avoid factorial overflow

SC-189

  • Q: Armstrong number?
  • A: Digit sum of d^k equals number (k=digit count)

SC-190

  • Q: Perfect number?
  • A: Sum of proper divisors equals number

SC-191

  • Q: GCD algorithm?
  • A: Euclidean: gcd(a,b) = gcd(b, a%b)

SC-192

  • Q: Prime check?
  • A: Test divisors 2..√n

SC-193

  • Q: Sieve complexity?
  • A: O(n log log n)

SC-194

  • Q: Fast power?
  • A: Square and multiply — O(log n)

SC-195

  • Q: LCM formula?
  • A: a*b / gcd(a,b)

SC-196

  • Q: Trailing zeros in n!?
  • A: Count multiples of 5, 25, 125...

SC-197

  • Q: What is modular arithmetic?
  • A: Operations under a modulus to prevent overflow

SC-198

  • Q: nCr efficiently?
  • A: Multiply/divide incrementally to avoid factorial overflow

SC-199

  • Q: Armstrong number?
  • A: Digit sum of d^k equals number (k=digit count)

SC-200

  • Q: Perfect number?
  • A: Sum of proper divisors equals number