为什么要模1000000007
刷OJ时,经常会遇到要模1000000007。
先看一下常用数据类型的数值范围(32位系统)
字节 |
类型 |
范围 |
长度 |
一字节(2^8)
char
-128 ~ 127
3
一字节(2^8)
unsigned char
0 ~ 255
3
二字节(2^16)
short
-32768 ~ 32767
5
二字节(2^16)
unsigned short
0 ~ 65535
5
四字节(2^32)
unsigned int
0~4294967295
10
四字节(2^32)
int
-2147483648~2147483647
10
四字节(2^32)
unsigned long
0~4294967295
10
四字节(2^32)
long
-2147483648~2147483647
10
八字节(2^64)
long long (g++)
-9223372036854775808~9223372036854775807
19
八字节(2^64)
unsigned long long (g++)
0~18446744073709551615
20
八字节(2^64)
__int64 (msvc)
-9223372036854775808~9223372036854775807
19
八字节(2^64)
unsigned __int64 (msvc)
0~18446744073709551615
20
最小的十位质数1000000007
1000000007 是最小的十位质数。模1000000007,可以保证值永远在int的范围内。