密码生成
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

这可能是一个数论题
由于不同的网站需要不同的密码, 但是小明又记不住复杂的密码, 于是他想出了一个密码生成算式, 用来把简单的密码加密成复杂的密码, 密码生成算式:
\left (\sum_{i = 1}^{a}\sum_{j = 1}^{b}\left([\operatorname{gcd}(i, j)=1]\cdot\min\left( \lfloor\frac{a}{i}\rfloor,\lfloor\frac{b}{j}\rfloor\right)\right)\right) \bmod(c)

输入a,b,c ,可以返回新的值。
例如小明需要一个六位数密码, 简单密码为 123456 与 135246, 计算得到的复杂密码为 930176。(a=123456,b=135246,c=1000000)
请你帮助小明写一个程序计算结果。
提示: 中括号是艾弗森括号, 若括号内等式成立则返回 1 , 否则返回 0 。

输入描述:

包含三个不超过10^9的正整数a,b,c.

输出描述:

在一行中输出结果
示例1

输入

复制
1 2 3

输出

复制
2
示例2

输入

复制
123456 135246 1000000

输出

复制
930176