Bird
Raised Fist0
DSA Cprogramming~20 mins

Modular Arithmetic Basics in DSA C - Practice Problems & Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
Modular Arithmetic Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ Predict Output
intermediate
2:00remaining
Output of Modular Addition
What is the output of the following C code snippet that performs modular addition?
DSA C
int a = 17;
int b = 23;
int mod = 10;
int result = (a + b) % mod;
printf("%d\n", result);
A1
B0
C10
D9
Attempts:
2 left
💡 Hint
Remember that modular addition sums the numbers and then takes the remainder after division by the modulus.
❓ Predict Output
intermediate
2:00remaining
Modular Multiplication Result
What will be printed by this C code that calculates modular multiplication?
DSA C
int x = 7;
int y = 8;
int mod = 5;
int product = (x * y) % mod;
printf("%d\n", product);
A2
B6
C0
D1
Attempts:
2 left
💡 Hint
Multiply first, then take the remainder after dividing by the modulus.
🧠 Conceptual
advanced
2:00remaining
Properties of Modular Arithmetic
Which of the following statements about modular arithmetic is FALSE?
AModular multiplication is distributive over addition: (a * (b + c)) mod m = ((a * b) mod m + (a * c) mod m) mod m
BModular addition is associative: (a + b) mod m = ((a mod m) + (b mod m)) mod m
CModular subtraction always produces a positive result
DFor any integer a, (a mod m) is always between 0 and m-1 inclusive
Attempts:
2 left
💡 Hint
Think about what happens when subtracting a larger number from a smaller one in modular arithmetic.
❓ Predict Output
advanced
2:00remaining
Modular Exponentiation Output
What is the output of this C code that calculates modular exponentiation using a simple loop?
DSA C
int base = 3;
int exponent = 4;
int mod = 5;
int result = 1;
for (int i = 0; i < exponent; i++) {
    result = (result * base) % mod;
}
printf("%d\n", result);
A1
B2
C3
D4
Attempts:
2 left
💡 Hint
Calculate 3^4 first, then take modulo 5.
🧠 Conceptual
expert
2:00remaining
Modular Inverse Existence
Which condition must be true for an integer 'a' to have a modular inverse modulo 'm'?
A'a' and 'm' are coprime (their greatest common divisor is 1)
B'a' is less than 'm'
C'm' is a prime number
D'a' is an even number
Attempts:
2 left
💡 Hint
Think about when division modulo 'm' is possible.

Practice

(1/5)
1. What is the result of 7 % 3 in modular arithmetic?
easy
A. 1
B. 2
C. 3
D. 0

Solution

  1. Step 1: Understand the modulo operation

    The modulo operator (%) gives the remainder when the first number is divided by the second.
  2. Step 2: Calculate 7 % 3

    7 divided by 3 is 2 with a remainder of 1, but since 7 % 3 means remainder, it is 1.
  3. Final Answer:

    1 -> Option A
  4. Quick Check:

    7 % 3 = 1 [OK]
Hint: Modulo gives remainder after division [OK]
Common Mistakes:
  • Confusing quotient with remainder
  • Using division instead of modulo
  • Mixing up dividend and divisor
2. Which of the following is the correct syntax to compute the remainder of a divided by b in C?
easy
A. a mod b
B. a % b
C. mod(a, b)
D. a / b

Solution

  1. Step 1: Recall C syntax for modulo

    In C, the modulo operator is represented by the percent sign '%'.
  2. Step 2: Identify correct syntax

    The correct way to get remainder is a % b. Other options are invalid syntax or division.
  3. Final Answer:

    a % b -> Option B
  4. Quick Check:

    Modulo operator in C is % [OK]
Hint: Use % operator for modulo in C [OK]
Common Mistakes:
  • Using 'mod' keyword
  • Using division operator '/' instead
  • Calling a function mod() which doesn't exist in C
3. What is the output of the following C code?
#include 
int main() {
    int x = 14;
    int y = 5;
    printf("%d", (x + y) % y);
    return 0;
}
medium
A. 4
B. 0
C. 1
D. 5

Solution

  1. Step 1: Calculate (x + y)

    x = 14, y = 5, so x + y = 19.
  2. Step 2: Calculate (x + y) % y

    19 % 5 is the remainder when 19 is divided by 5. 5 * 3 = 15, remainder 4.
  3. Final Answer:

    4 -> Option A
  4. Quick Check:

    (14 + 5) % 5 = 4 [OK]
Hint: Add first, then apply modulo [OK]
Common Mistakes:
  • Applying modulo before addition
  • Confusing remainder with quotient
  • Incorrect operator precedence
4. Identify the error in the following C code snippet that attempts to compute a % b:
int a = 10;
int b = 0;
int c = a % b;
printf("%d", c);
medium
A. Syntax error in modulo operator
B. Variable c is not declared
C. Division by zero error
D. No error, code runs fine

Solution

  1. Step 1: Check divisor value

    Variable b is zero, which is the divisor in modulo operation.
  2. Step 2: Understand modulo with zero divisor

    Modulo by zero is undefined and causes a runtime error (division by zero).
  3. Final Answer:

    Division by zero error -> Option C
  4. Quick Check:

    Modulo divisor cannot be zero [OK]
Hint: Never modulo by zero; it causes runtime error [OK]
Common Mistakes:
  • Ignoring zero divisor
  • Assuming modulo by zero returns zero
  • Confusing syntax error with runtime error
5. Given the expression (a * b) % m, which of the following is a correct way to compute it without causing integer overflow in C when a and b are large integers?
hard
A. Use (a % b) % m
B. Use (a * b) % m directly
C. Use (a + b) % m
D. Use ((a % m) * (b % m)) % m

Solution

  1. Step 1: Understand overflow risk

    Multiplying large integers a * b can overflow before modulo is applied.
  2. Step 2: Apply modular multiplication property

    Using ((a % m) * (b % m)) % m keeps intermediate values smaller, preventing overflow.
  3. Final Answer:

    ((a % m) * (b % m)) % m -> Option D
  4. Quick Check:

    Modular multiplication reduces overflow risk [OK]
Hint: Modulo each operand before multiply to avoid overflow [OK]
Common Mistakes:
  • Multiplying before modulo causing overflow
  • Using addition instead of multiplication
  • Incorrect modulo order
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard