为什么要模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的范围内。