Codeforces 1328A Divisibility Problem Solution & Explanation

Difficulty : 800

Problem Description

You are given two positive integers a and b. In one move you can increase a by 1(replace a with a+1). Your task is to find the minimum number of moves you need to do in order to make a divisible by b. It is possible, that you have to make 0 moves, as a is already divisible by b. You have to answer t independent test cases.


The first line of the input contains one integer t (1≤t≤104) — the number of test cases. Then t test cases follow.

The only line of the test case contains two integers a and b (1≤a,b≤109).


For each test case print the answer — the minimum number of moves you need to do in order to make a divisible by b.


10 4
13 9
100 13
123 456
92 46

10+2 = 12 = 4*3

13+5 = 18 = 9*2

100+4 = 104 = 13*8

123+333 = 456 = 456*1

92+0 = 92 = 46*2


We calculates the remainder of the division a % b and stores it in the variable left.

If left is already 0, meaning that a is already divisible by b, it outputs 0 moves. Otherwise, it prints the difference between b and left, indicating the minimum number of moves needed to make a divisible by b.

C# Solution


int n = int.Parse(Console.ReadLine());

for(int i=0; i<n; i++){
    string[] arr = Console.ReadLine().Split(" ");
    int a = int.Parse(arr[0]);
    int b = int.Parse(arr[1]);
    int left = a%b;
    Console.WriteLine(left==0 ? 0 : b-left);


🧡If my solution helps, that is my honor!

🧡You can support me by sharing my posts, thanks you~~

✅If you got any problem about the explanation or you need other programming language solution, please feel free to let me know !!

The problem link : Problem – 1328A – Codeforces

Random Codeforces Posts

Leave a Reply

Your email address will not be published. Required fields are marked *