分数拆分
题目
解题思路
其实就是1/k=1/x+1/y
所以1/k=1/x+1/y 且x>=y得出 1/k<=2/y,因此y<=2k.
枚举x和y即可
程序如下
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
long long n,sum;
int main()
{
scanf("%lld",&n);
for(long long i=n+1;i<=n*2;++i)//枚举x和y
if((i*n)%(i-n)==0)sum++;//判断是否整数
printf("%lld",sum);
return 0;
}