给出n求1/n=1/x+1/y(n,x,y=1,2,3...)的解的个数,

这篇博客探讨了数学问题,即给定一个正整数n,如何找到所有使得1/n等于1/x加上1/y的整数对(x, y)的个数。内容涉及数论和方程求解策略。" 51375443,4880937,Android集成百度地图:添加覆盖物与定位功能,"['Android开发', '地图服务', '百度API', '定位技术']
摘要由CSDN通过智能技术生成
#include <bits/stdc++.h>
using namespace std;
/*
题意:给出n,求1/n=1/x+1/y(n,x,y=1,2,3...)的解的个数,找出最小的n,构成1/n的式子超过1000

设x=n+a,y=n+b,化简可得n^2=a*b.设n^2的因子个数为p,n^2的所有因子中除n外都是成对出现的,故方程解数为(p+1)/2。
比如n=4,则x=8,y=8;x=20,y=5;x=12,y=6 一共有3种情况
一个数的约数必然包括1及其本身。
因为n <= 10^9,则n^2是一个很大的数,在时间和空间上都不允许直接操作,考虑到任何整数n都可以表示为 n = p1^e1*p2^e2*..pn^en,其中p1,p2..,pn都为素数,
并且n的约数个数为 (1+e1)*(1+e2)*...(1+en);
所以n^2 = (p1^e1*p2^e2...pn^en)^2 = p1^2e1*p2^2e2...*pn^2en,故其约数个数为(1+2e1)*(1+2e2)*...(1+2en);
所以只需求出n的约数个数即可,每次求出ek(k=1,2,3,4..)的时候,将结果乘上2即可。
//除不尽,说明n是大于sqr
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值