函数F(N,K)表示在正整数序列中,第K个不被N整除的数字是多少?
输入描述:
第一行一个整数T,表示测试用例的组数,接下来的T行,每行两个整数N,K。
输出描述:
共T行,每行输出一个数,表示F(N,K)的值。
例如:
输入:
5
3 1
3 2
3 3
3 4
3 5
输出:
1
2
4
5
7
思路:
当 K < N 时,所有数组都不可以被N整除,所以直接找到第K个数字即可;
当 K >= N 时,1~K 内一共有 K // N 个数字可以被 K 整除(包括 K ),所以还要找 K // N 个大于K且不能被N整除的数字(输出大于 K 的第 K // N 个不能被N整除的数字即为所求)
注意:求第大于 K 的第 K // N 个不能被N整除的数字时,遍历范围应为:( K , 2*K ),python写法即:for j in range(k[i]+1, 2*k[i]):
代码如下:
import sys
if __name__ == "__main__":
# 读取第一行的n
t = int(sys.stdin.readline().strip())
ans = 0
n = []
k = []
for i in range(t):
# 读取每一行
line = sys.stdin.readline().strip()
# 把每一行的数字分隔后转化成int列表
values = list(map(int, line.split()))
n.append(values[0])
k.append(values[1])
for i in range(t):
count = 0
if k[i] < n[i]:
print(k[i])
else:
for j in range(k[i]+1, 2*k[i]):
f = k[i] // n[i] #//是表示向下取整的除法
if j % n[i] != 0:
count = count + 1
if count == f:
print(j)
break