Episode 7 — DSA with JavaScript / 7.7 — Math Problems and Algorithms
7.7 — Interview Questions: Math Problems
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
| # | Question | Answer |
|---|---|---|
| 1 | Prime check time? | O(√n) |
| 2 | GCD algorithm? | Euclidean — O(log min(a,b)) |
| 3 | Sieve time? | O(n log log n) |
| 4 | Fast power time? | O(log n) |
| 5 | Trailing zeros in n!? | Count factors of 5 |
| 6 | LCM formula? | a*b / gcd(a,b) |
| 7 | Armstrong 153? | 1³+5³+3³ = 153 ✓ |
| 8 | nCr relation? | C(n,r) = C(n-1,r-1) + C(n-1,r) |
| 9 | Modular inverse? | a^(p-2) mod p (Fermat) |
| 10 | Digital 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