题目:给你一个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. jquey写进度条问题

    jquey写进度条问题可以直接按照 总时间和进度条宽度之比来做 不管他是不是y=kx 反正时间到0 进度肯定是0了

  2. javascript关于box2djs和matterjs之间的选择

    javascript关于box2djs和matterjs之间的选择box2djs资料少很多时候需要看c++版本资料 然后转化成js 还有转化成像素坐标不准确 matterjs文档丰富 上手容易 建议用 ...

  3. Prometheus客户端开发:腾讯云CLB

    一:简介 随着prometheus的使用人群逐渐扩大,官方定义的client exporter虽然能满足我们的大部分需求,但是很多监控还是需要我们自定义开发,以下内容就是基于腾讯云SDK,对腾讯云CL ...

  4. T-SQL Part XI: Login Failed 18456 以及修改Authentication Mode

    这是一个很常见的场景,安装SQL Server时候选择了默认的Windows Authentication Only,然后使用中发现还是需要支持用户名/密码登录. 按照MSDN的文档,然而并没有多大作 ...

  5. nginx+uWSGI+django+virtualenv+superviso发布web服务器

    1.环境依赖 yum groupinstall "Development tools" -y yum install zlib-devel bzip2-devel pcre-dev ...

  6. java编程思想第四版第十四章 类型信息习题

    fda dfa 第三题u package net.mindview.typeinfo.test4; import java.util.ArrayList; import java.util.Array ...

  7. mongodb基本命令,mongodb集群原理分析

    mongodb基本命令,mongodb集群原理分析 集合: 1.集合没有固定数据格式. 2. 数据: 时间类型: Date() 当前时间(js时间) new Date() 格林尼治时间(object) ...

  8. pat 1046 Shortest Distance(20 分) (线段树)

    1046 Shortest Distance(20 分) The task is really simple: given N exits on a highway which forms a sim ...

  9. PowerMock学习(四)之Mock static的使用

    我们编写代码的时候,总会写一些工具类,为了方便调用喜欢使用static关键字来修饰对应方法. 那么现在举例说明,还是准备两个接口,第一个是查询学生总数,第二个是新增学生两个接口,具体示例代码如下: p ...

  10. Centos7安装redis5.0.7

    1. 安装依赖包 yum install -y gcc gcc-c++ 2. 下载最新版redis安装包并解压安装 cd /usr/local/src wget http://download.red ...