题目:给你一个n(1<=n<=1,000,000,000,000 ),找到满足1/n=1/a+1/b(0<a<=b)的数量。

题目链接:https://www.nitacm.com/problem_show.php?pid=20301

题意转换:

①不知道干啥先打表找规律

int n,cnt=;
cin>>n;
for(int i=;i<=;i++)//枚举a
{
for(int j=i;j<=;j++)//枚举b
{
if(n*(i+j)==i*j)cout<<i<<" "<<j<<endl,cnt++;
}
}
cout<<cnt<<endl;

n=6时,cnt=5,分别为(7,42),(8,24),(9,18),(10,15),(12,12)。

顺便打下前20的答案用作验证:

1 2 2 3 2 5 2 4 3 5 2 8 2 5 5 5 2 8 2 8 5

②之后开始推公式

/n=/a+/b
/n=(a+b)/ab
ab=(a+b)n
ab=an+bn
ab-bn=an
b(a-n)=an
b=an/(a-n)
设i=a-n,即a=i+n
b=(n+i)*n/i
b=n*n/i+n
由题意可知a>n(i>),已知a<=b(i+n<=n*n/i+n)
同减n,i<=n*n/i
同乘i,i*i<=n*n,
i<=n
至此得到条件i∈[,n]
又已知a,b为整数,所以n*n/i需要为整除
满足条件的a和b需要满足:i在范围内,n*n/i为整数

题意转换:1到n中有多少个n*n的因子

③d=====( ̄▽ ̄*)b

题意好像十分明了了(就是不会做)。

暴力的复杂度为sqrt(n*n),与欧拉函数找不出关联,题目的突破点在于n*n(平方数的因子),并且求的是因子数,而不是具体哪些因子。

需要一点前导知识:

https://blog.csdn.net/qq_40679299/article/details/80583222

100=2*2*5*5,有(1+2)*(1+2)个因子

50=2*5*5,有(1+1)*(1+2)个因子

54=2*3*3*3,有(1+1)*(1+3)个因子

30=2*3*5,有(1+1)*(1+1)*(1+1)个因子

nitacm20301 poor math的更多相关文章

  1. hdu4888 Redraw Beautiful Drawings 最大流+判环

    hdu4888 Redraw Beautiful Drawings Time Limit: 3000/1500 MS (Java/Others)    Memory Limit: 65536/6553 ...

  2. HDU4888 Redraw Beautiful Drawings(最大流唯一性判定:残量网络删边判环)

    题目 Source http://acm.hdu.edu.cn/showproblem.php?pid=4888 Description Alice and Bob are playing toget ...

  3. Price List

    Price List Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 262144/131072 K (Java/Others)Tota ...

  4. HDU 4888 Redraw Beautiful Drawings(最大流+判最大流网络是否唯一)

    Problem Description Alice and Bob are playing together. Alice is crazy about art and she has visited ...

  5. HDU4888 Redraw Beautiful Drawings(2014 Multi-University Training Contest 3)

    Redraw Beautiful Drawings Time Limit: 3000/1500 MS (Java/Others)    Memory Limit: 65536/65536 K (Jav ...

  6. freemaker自定义分页控件实现

    <link href="${res}/css/pages-jhdb.css" rel="stylesheet" type="text/css&q ...

  7. HDU Redraw Beautiful Drawings 推断最大流是否唯一解

    点击打开链接 Redraw Beautiful Drawings Time Limit: 3000/1500 MS (Java/Others)    Memory Limit: 65536/65536 ...

  8. 【HDU 5808】 Price List Strike Back (整体二分+动态规划)

    Price List Strike Back There are nn shops numbered with successive integers from 11 to nn in Bytelan ...

  9. Best Coder #86 1001 Price List(大水题)

    Price List Accepts: 880 Submissions: 2184 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 26214 ...

随机推荐

  1. javascript canvas 生成图片的方法

    javascript canvas 生成图片的方法 先生成base64格式的图片 然后ajax传到后台 写入服务器文件夹即可<pre><!DOCTYPE HTML><ht ...

  2. Linux基础知识回顾

    1.描述计算机的组成及其功能 计算机是由计算机软件系统和计算机硬件系统两大系统组成 计算机硬件组成 1946年数学家冯诺依曼提出,计算机硬件由运算器.控制器.存储器.输入设备和输出设备5大部件组成,如 ...

  3. 201871010114-李岩松《面向对象程序设计(java)》第十一周学习总结

    项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh/ 这个作业的要求在哪里 https://www.cnblogs.com/nwnu-daizh/p ...

  4. VsCode Python配置安装教程

    1.软件下载地址 Python官网: https://www.python.org/downloads/windows/ Python下载地址: https://www.python.org/ftp/ ...

  5. celery 启用worker ValueError: not enough values to unpack

    [2018-01-12 19:08:15,545: INFO/MainProcess] Received task: tasks.add[5d387722-5389-441b-9b01-a619b93 ...

  6. pat 1035 Password(20 分)

    1035 Password(20 分) To prepare for PAT, the judge sometimes has to generate random passwords for the ...

  7. nyoj 206-矩形的个数 (a*b*(a+1)*(b+1)/4)

    206-矩形的个数 内存限制:64MB 时间限制:1000ms 特判: No 通过数:16 提交数:37 难度:1 题目描述: 在一个3*2的矩形中,可以找到6个1*1的矩形,4个2*1的矩形3个1* ...

  8. runlevel init

    init概念存在于cnetos7以下,配置文件/etc/inittab init 以及 文本和图形界面切换(可以用ctrl+alt+n 或者 init3 5切换,不是重启切) 命令init N 0 关 ...

  9. linux启动与登录

    1.............rescue..............进入维护模式 (grub选项吧这是) 2.linux启动的幕后过程: 1 加电 (再一次联想服务器升级内存时,加电后有个黄色报警,过 ...

  10. 图文详解基于角色的权限控制模型RBAC

    我们开发一个系统,必然面临权限控制的问题,即不同的用户具有不同的访问.操作.数据权限.形成理论的权限控制模型有:自主访问控制(DAC: Discretionary Access Control).强制 ...