132 字
1 分钟
BZOJ 4173 数学
2017-08-13

Description#

ff.jpg

Input#

输入文件的第一行输入两个正整数 。

Output#

如题

Sample Input#

5 6

Sample Output#

240

HINT#

N,M<=10^15

题解#

简单来说就是找规律

答案为a*b*phi(a)*phi(b)

#include <cstdio>
#include <cstring>
#include <cmath>
#include <algorithm>
using namespace std;
const long long MOD = 998244353;
long long phi(long long x)
{
double ans = x;
int i = 2;
int Sqrt = ceil(sqrt(x));
while (x != 1)
{
if (i > Sqrt)
{
ans *= (1 - (double)1 / x);
break;
}
if (x % i == 0)
{
ans *= (1 - (double)1 / i);
while (x % i == 0)
x /= i;
}
i++;
}
return (long long)ans;
}
int main()
{
long long a,b;
scanf("%lld%lld",&a,&b);
printf("%lld",((((a%MOD)*(b%MOD)%MOD)*(phi(a)%MOD)%MOD)*(phi(b)%MOD))%MOD);
//while(1);
}
BZOJ 4173 数学
https://www.nekomio.com/posts/92/
作者
NekoMio
发布于
2017-08-13
许可协议
CC BY-NC-SA 4.0