题解 P5253 【丢番图】
upd 20210508:感谢 @SegmentTreeJuruo 关于一处符号的指正,现已修改。
一看到丢番图就想到那个年龄故事。
这道题是一道简单数学推柿子题,个人认为难度大约
大致思路
开启推柿子模式:
综上,满足
最后端上香喷喷的代码!
CODE
#include <stdio.h>
long long n;
int main(void) {
scanf("%lld", &n);
long long ans = 1ll;
for (long long i = 2ll; i * i <= n; ++i)
if (n % i == 0) {
long long k = 0ll;
while (1) {
if (n % i != 0ll)
break;
n /= i;
++k;
}
ans *= (k << 1ll) + 1ll;
}
if (n > 1)
ans *= 3;
printf("%lld\n", (ans + 1) >> 1ll);
return 0;
}
到这里这篇题解就结束了。如果您觉得还珂以,就顶一下(给个赞)呗!谢谢大家!