Problem Link - Exam Cheating in Number theory
Problem Statement:
This problem asks us to find out how many values of p (the number of different sets of exam questions) will allow Ram and Shyam to cheat by getting the same set of questions.
Approach:
- Assignment Rule: The student with roll number r receives set number (r−1)%p.
- Objective: Ram and Shyam can only cheat if they receive the same set. This means that: (A−1)%p = (B−1)%p. A is Ram’s roll number and B is Shyam’s roll number.
- Condition Simplification: We can simplify the equation:
(A−1)%p = (B−1)%p ⇒ (A−B)%p = 0. Thus, p must divide (A−B). Now we have to find the divisors of (A-B), because p must be one of those divisors.
Now there are two scenarios:- When A=B: In this case, (A-B)=0 and p can be any value. Thus, there are infinitely many values of p, so result is -1.
- When A≠B: In this case, the number of valid values for p is equal to the number of divisors of |A-B|
- Find Divisors: The approach to counting divisors of a number n is based on the fact that divisors come in pairs. For every divisor i of n, there exists a corresponding divisor \frac{n}{i} . By iterating only up to \sqrt{n} , we efficiently find all divisors, as any divisor greater than \sqrt{n} would have already been paired with a divisor smaller than \sqrt{n} .
Complexity:
- Time Complexity: O(\sqrt{A-B} ) We are iterating through \sqrt{A-B} to find the divisors.
- Space Complexity:
O(1)
No extra space is required.