負の値に対する剰余をしたときの値は、プログラミング言語によって異なる。試す。
Go言語。
fmt.Println(-8 % 5)
fmt.Println(8 % -5)
-3
3
C言語。
printf("%d\n", -8 % 5);
printf("%d\n", 8 % -5);
-3
3
Emacs Lisp。
(format "%s\n%s" (number-to-string (% -8 5)) (number-to-string (% 8 -5)))
-3
3
Rubyでは逆になる。
sprintf("%d\n%d", -8 % 5, 8 % -5)
2
-2