#T557852. 带余数除法(b和q已知)
带余数除法(b和q已知)
题目描述
带余数除法:对于两个正整数b, a,如果b除以a的商为q,余数为r,我们可以写出带余数除法算式,b÷a = q……r。本题中,哪怕r=0,也要写出这个余数。
现在有一个带余数除法,然而你只知道被除数b和商q,0≤q≤10^9,0<b≤10^9,q≤b,不知道除数a和余数r。那么除数a和余数r,有多少种不同的取值组合?余数r取值总和是多少?
输入格式
本题有多组测试数据。输入的第一行为一个正整数T,表示数据组数。然后有T行,每行有一个正整数b和自然数q,分别表示带余数除法的被除数和商。
输出格式
对每组测试数据,输出一行,为两个整数,用一个空格隔开,分别表示余数的不同取值数量和余数所有可能取值的和。
输入输出样例 #1
输入 #1
2
10 2
1 0
输出 #1
2 2
1 1
输入输出样例 #2
输入 #2
10
447 0
22 1
21 1
23 1
319 11
318 11
320 11
493 29
492 29
494 29
输出 #2
1 447
11 55
11 55
12 66
3 33
2 31
3 36
1 0
0 0
1 1
说明/提示
数据规模与约定
对于前30%的数据,保证1≤b≤1000,0≤q≤1000。
另有20%的数据,保证q≤。
对于全体数据,保证1≤T≤10,0≤q≤b≤。
样例1解释
对于第一组数据,被除数为10,商为2。
如果除数是1, 2, 3,那么商分别是k = 10, 5, 3,不符合题意。
如果除数是4,那么商为2,余数为r = 2。
如果除数是5,那么商为2,余数为r = 0。
如果除数是6, 7, 8, 9, 10,那么商都是1,不符合题意。
如果除数>10,那么商为0,不符合题意。
对于第二组数据,被除数为1,商为0。
只要除数a>1,那么1÷a=0⋯⋯1一定是正确的带余除法算式。余数只有1这一种可能。
本题出处
本题源自以下教材的编程习题:王桂平, 周思益, 周迎川著. C++编程与信息学竞赛数学基础, 北京大学出版社, 2025年7月出版.