【BZOJ 4459】【JSOI 2013】丢番图

来源:互联网 发布:农民网络电视台直播 编辑:程序博客网 时间:2024/05/22 13:05

1x+1y=1n
xyxnyn=0
(xn)(yn)=n2
答案就是n2的因子个数除以2上取整。
分解质因数就好了。

#include<cmath>#include<cstdio>#include<vector>#include<queue>#include<cstring>#include<iomanip>#include<stdlib.h>#include<iostream>#include<algorithm>#define ll long long#define inf 1000000000#define mod 1000000007#define N 100000#define fo(i,a,b) for(i=a;i<=b;i++)#define fd(i,a,b) for(i=a;i>=b;i--)using namespace std;ll res,n;int i,idx;int main(){    scanf("%lld",&n);    res = 1;    fo(i,2,(int)sqrt(n))        {            idx = 0;            while (n % i == 0) {idx++; n/=i;}            res *= idx * 2 + 1;        }    if (n-1) res *= 3;    printf("%lld\n",(res+1)>>1);    return 0;}
0 0
原创粉丝点击