Description
Input
第一行,两个正整数 S 和 q,q 表示询问数量。
接下来 q 行,每行一个正整数 n。
Output
输出共 q 行,分别为每个询问的答案。
Sample Input
30 3
9
29
1000000000000000000
9
29
1000000000000000000
Sample Output
0
9
450000036
9
450000036
HINT
感谢the Loser协助更正数据
对于100%的数据,2<=S<=2*10^6,1<=n<=10^18,1<=q<=10^5
这个题面让人很费解啊
其实题意还是挺简洁的
首先对S分解质因数
如果有相同的因数出现了多次,那么$lcm(p_1,p_2,p_3...p_k)=S$一定不能被满足
扫描二维码关注公众号,回复:
6706253 查看本文章
此时直接特判输出Q个0即可
(这10分这么好拿还想什么正解hhh)
接下来要做的,是取一定数量的每个$p_i$,使他们的和为$n$
假设$n=\sum{p_i*c_i}$,即$p_i$对应取$c_i$个
由$p_i$是S的因数,可得$p_i*c_i$一定可以表示成$X*S+Y*p_i$
将$p_i$除过去,得到$c_i=X*\frac{S}{p_i}+Y$