Problem7026--取模问题 I —— 单个数字取模

7026: 取模问题 I —— 单个数字取模

[Creator : ]
Time Limit : 1.000 sec  Memory Limit : 256 MiB

Description

取模运算是求两个数相除的余数。
取模运算(“Modulo Operation”)和取余运算(“Remainder Operation ”)两个概念有重叠的部分但又不完全一致。主要的区别在于对负整数进行除法运算时操作不同。取模主要是用于计算机术语中。取余则更多是数学概念。
对于整型数 $a,b$ 来说,取模运算或者求余运算的方法都是:
1. 求整数商: $c = \lfloor a/b \rfloor$。
2. 计算模或者余数: $r = a - c \times b$。

在 OI 比赛中,有些题目,我们取模的结果要求是正数。例如:
1. $8 \bmod 3 = 2$。
2. $-8 \bmod 3 = 1$。
但是负数取模直接使用 C++ 的 $\%$ 运算,我们将得到一个负数。
因此我们在 OI 比赛中,要求数据 $x$ 对 $b$ 进行取模,我们的正确使用方法如下
long long r=((x%b)+(b>0?b:-b))%b;
这样做是确保余数 $r$ 为正数。

Input

一行包括两个整数 $x\ (-10^{18} \leq x \leq 10^{18})$ 和 $b\ (5 \leq b < x)$。

Output

一行一个正整数,表示 $x \bmod b$ 的结果。

Sample 1 Input

8 3

Sample 1 Output

2

Sample 2 Input

-8 3

Sample 2 Output

1
-8 = 3*(-3)+1

Sample 3 Input

7 -3

Sample 3 Output

1
7 = -3*(-2)+1

Source/Category