链接: https://www.nowcoder.com/acm/contest/90/F
来源:牛客网

时间限制:C/C++ 1秒,其他语言2秒
空间限制:C/C++ 32768K,其他语言65536K
64bit IO Format: %lld

题目描述

给定n,求1/x + 1/y = 1/n (x<=y)的解数。(x、y、n均为正整数)

输入描述:

在第一行输入一个正整数T。
接下来有T行,每行输入一个正整数n,请求出符合该方程要求的解数。
(1<=n<=1e9)

输出描述:

输出符合该方程要求的解数。

思路

1/x+1/y=1/n 
–> 
nx+ny=xy 
–>

(x-n)*(y-n)=n*n

所以

temp=n * n ,

其实就是求 temp这个数<= n 的因子的个数 
不能直接求 数据太大

分解质因子降低时间复杂度:

每个合数都可以写成几个质数相乘的形式,这几个质数就都叫做这个合数的质因数。如果一个质数是某个数的因数,那么就说这个质数是这个数的质因数。而这个因数一定是一个质数。

而分解质因子法求一个数的因子个数算法解析:如36,=1*2*2*3*3;设因子2的个数是n个,因子2可以生成n个因子(此例子是2,2*2=4)因子3的个数是m个,可以生成m个因数(3,9),而后生成的因子可以生成n*m个因子(即(2,4)和(3,9)的结合)。因为1也是其因子,所以总共的因数个数是n+m+n*m+1;=n*(m+1)+m+1=(n+1)*(m+1);所以把质因子个数求出来+1再相乘就是所有该数因子的个数。

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
int main()
{int t;ll n,ans,cnt;scanf("%d",&t);while(t--){scanf("%lld",&n);ll temp=n*n;ans=1;for(int i=2;i*i<=temp;i++){cnt=1;while(temp%i==0){cnt++;temp/=i;}ans*=cnt;}printf("%lld\n",ans/2+1);//<=n的因子的个数}
}

。今天发现如果不能保证数以平方的形式,如求6的质因子,这种写法就算不出了,看了一本书上求质因子的算法

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
int t,n;
int main()
{scanf("%d",&t);while(t--){scanf("%d",&n);ll temp=n;int p=(int)((double)sqrt(temp)+1);for(int i=2;i<=p;i++){int cnt=0;while(temp%i==0){temp/=i;cnt++;}printf("%d %d\n",i cnt);//质因子i的个数是cnt个}}
}

等式(分解质因子求因子个数)相关推荐

  1. 分解因数和求因子个数

    1.分解因数 链接:分解因数__牛客网 来源:牛客网 所谓因子分解,就是把给定的正整数a,分解成若干个素数的乘积,即 a = a1 × a2 × a3 × ... × an,并且 1 < a1 ...

  2. matlab 求互质,Matlab求三个数的互质的整数比(最简比)

    属于我写的<Matlab材料科学与基础--作出特定晶面指数在简单体心立方中所表示的面>的副产品...点击打开链接 纯小数和纯整数的情况都比较好做,并且两者可以互相转化 我讨论一下小数和整数 ...

  3. c语言用质因数分解法求最大公约数,分解质因数法求最大公约数(javascrip实现)

    //判断是否为质数------------------------------------------------------ function isPrime(n) { for (var i = n ...

  4. 【二】Java编程之分解质因素

    质因数百度百科解释 质因数(素因数或质因子)在数论里是指能整除给定正整数的质数.除了1以外,两个没有其他共同质因子的正整数称为互质.因为1没有质因子,1与任何正整数(包括1本身)都是互质.正整数的因数 ...

  5. 关于求1~n中与m互质的数的个数(容器原理+数论分解质因子)

    D. Count GCD 这道题严格来讲不难,a[i]与b[i+1]最大公约数为a[i+1],所以a[i]与b[i+1]必定整除a[i+1],且a[i]/a[i+1]与b[i+1]/a[i+1]互质, ...

  6. 求一个数的因子个数/因子和/质因子 C/C++实现

    求一个数的因子个数时间复杂度O√n ll get_number(ll x){ll num=0;for(ll i=1;i*i<=x;i++){if(x%i==0) num+=2; if(i*i== ...

  7. 【面试题视频讲解】求一个数的所有质因子

    P2求一个数的所有质因子 https://www.bilibili.com/video/av91892983?p=2

  8. 数论:求一个数的因子专题(因子数,因子和,质因子)

    问题1-求n的因子数.因子和 输入一个正整数N,求出这个数字存在多少个因子,以及因子之和. 分析 既要求因子数,又要求因子和,因此我们要从1开始遍历一直到根号n,如果n%i==0,因子数+2,因子和要 ...

  9. 求n!中含有质因子p的个数

    定理:  中含有质因子p的个数为  ,其中  int cal(int n, int p) {int ans = 0;while (n != 0) {ans += n / p;n /= p; //相当与 ...

最新文章

  1. 百度 71 个炸天的开源项目!你知道几个?
  2. redhat 6 配置 yum 源
  3. c#中程序以管理员身份运行的三种办法
  4. 明明的随机数(洛谷-P1059)
  5. Linux查看GPU使用情况
  6. .ipynb文件怎么打开_Win10文件夹打开拒绝访问怎么解决?
  7. 北理工计算机专业汇编教材,李元章_北京理工大学计算机学院
  8. 十分钟走进大数据世界
  9. Silverlight for KPI
  10. 怎么评判网络舆情分析系统好不好的指标标准详解
  11. ActivityManager 管理Activity
  12. mysql 申花球队面试题_mysql面试题练习01
  13. 查看elasticserc版本_Elasticsearch版本和客户端介绍
  14. GC暂停时间过长——未关闭Swap
  15. 工业相机和普通相机的区别详解_工业数字相机和普通相机的区别
  16. 张轩睿和Selina要复合?任家萱的粉丝们会同意吗
  17. 广域网 —— 广域网的基本概念
  18. sample函数—R语言
  19. CString的拆分词函数Tokenize
  20. 【SpringBoot】添加Converter解析器中使用lambda表达式代替匿名内部类是启动报错: does the class parameterize those types?

热门文章

  1. 基于Java毕业设计晨光文具店进销存系统设计与开发源码+系统+mysql+lw文档+部署软件
  2. 树莓派4b+mcp2515实现CAN总线通讯和系统编程(一.配置树莓派CAN总线接口)
  3. 赢在软件 阿里软件介绍
  4. 新代系统怎样看服务器ip,新代数控系统是如何进行网络连接
  5. 到底什么是Lin single lung IMs (Lin−CD45+MerTK+CD64+SiglecF−CD11b+) were collected by FACS into 96-well pl
  6. excel图表制作技巧:条件格式制作像素图表
  7. PS一键磨皮插件:dr5白金版for mac 支持ps2021
  8. 【IoT】 产品设计:微信小程序如何适配不同机型
  9. 关于GCC/LLVM编译器中的sanitize选项用处用法详解
  10. java魔兽游戏_.netframework游戏编程入门——模拟魔兽学院永远的羁绊