https://paste.ubuntu.com/p/TvcscVtsYf/
#include<bits/stdc++.h>
using namespace std;
const long long mo = 23333333333333333ll;
long long mul(long long x, long long y) {
x %= mo, y %= mo; //如果x,y已经<mo可以不用这句话,否则必须要
long long z = (long double) x * y / mo + 0.5; //加0.5相当于四舍五入,精度更好
z = x * y - z * mo; //利用了自然溢出,编译指令请不要加-ftrapv
return (z % mo + mo) % mo;
}
int main() {
printf("%lld\n", mul(12345678901234567ll, 987654321098765432ll));
}