Bob And GCD

3.8

16 votes
Ad-Hoc, Algorithms, Basic Programming, Easy, Greedy Algorithms
Problem

Bob has an array A of size N. He doesn't like arrays in which the GCD of all elements is not K. He can perform multiple operations on an array. In each operation, he can either increase or decrease the value of an element by 1.
You have to tell the minimum operation Bob will take to make GCD of all elements in an array equal to K or any multiple of K?

Note: The smallest value up to which you can decrease any element is 1. You cannot make any element smaller than 1.

GCD here is Greatest Common Divisor.

Input Format

The first line contains T, the number of test cases.

For Each Testcase :
The first line contains 2 integers - K and N respectively, separated by a space.
The second line contains N integers, separated by a space, in order of their position in array.

Input Constraints

1T10
1N106
1A[i]106
1K106

Output Format

For each test case, print minimum number of operations Bob take in a new line.

Sample Input
1
5 3
4 5 6 
Sample Output
2
Time Limit: 2
Memory Limit: 256
Source Limit:
Explanation

Testcase 1:
In first operation, increase value of 4 by 1.
In second operation, decrease value of 6 by 1.
MInimum operations = 1+1=2

Editor Image

?