为什么要模1000000007

2019-04-13 12:33发布

为什么要模1000000007

刷OJ时,经常会遇到要模1000000007。

先看一下常用数据类型的数值范围(32位系统)

字节类型范围长度一字节(2^8)char-128 ~ 1273一字节(2^8)unsigned char0 ~ 2553二字节(2^16)short-32768 ~ 327675二字节(2^16)unsigned short0 ~ 655355四字节(2^32)unsigned int0~429496729510四字节(2^32)int-2147483648~214748364710四字节(2^32)unsigned long0~429496729510四字节(2^32)long-2147483648~214748364710八字节(2^64)long long (g++)-9223372036854775808~922337203685477580719八字节(2^64)unsigned long long (g++)0~1844674407370955161520八字节(2^64)__int64 (msvc)-9223372036854775808~922337203685477580719八字节(2^64)unsigned __int64 (msvc)0~1844674407370955161520

最小的十位质数1000000007

1000000007 是最小的十位质数。模1000000007,可以保证值永远在int的范围内。