首页 > 其他分享 >第K个约数

第K个约数

时间:2024-07-04 23:09:46浏览次数:5  
标签:约数 输出 数字 3758 long ans

题目链接:https://bzoj.org/p/3758
Description
给你一个数字N,再给个数字K
将N的所有约数从小到大排好,求第K个约数,如果不存在输出-1
Input
一行给出N,K
N<=1e15
K<=1e9
Output
如题
Samples
输入数据 1
4 2
输出数据 1
2
当我刚开始看见尝试: 7 已通过: 2 难度: 10时,有点退缩的感觉......

但是,我开始做的时候,才发现:
原来这么简单!
Sol:做一个for循环,再标记第ans个(开始时ans为0)数是几,如果ans=k就break.
代码:

#include<bits/stdc++.h>
using namespace std;
int main()
{
	long long n,k,ans=0;
	cin>>n>>k;
	for(long long i=1;i<=n;i++){
		long long l=0;
		if(n%i==0){
			l=i;
			ans++;
		}
		if(ans==k){
			cout<<l;
			return 0;
		}
	}
	cout<<"-1";
	return 0;
}

创作不易,点个赞再走吧!

标签:约数,输出,数字,3758,long,ans
From: https://www.cnblogs.com/Ace-29/p/18284841

相关文章

  • 用质因数求解最大公约数(gcd)和最小公倍数(lcm)
    用质因数求解最大公约数(gcd)思路分析:1、质因数:(素因数或质因子)他指的是能整除给定正整数的质数。例如:36可以分解为223*3,其中2和3就是质因数。2、质因数求解最大公约数:对每个数进行质因数分解;找出所有数的共有质因数,并取每个共有质因数的最低次幂;将这些最低次幂的质因......
  • 3169 找出最大公约数
    解法一:循环倒叙一个个找#include<bits/stdc++.h>#definef(i,s,e)for(inti=s;i<=e;i++)#definelllonglongusingnamespacestd;constintN=1e3+10,inf=0x3f3f3f3f;intmain(){intn,m;cin>>n>>m;for(inti=n;i>=1......
  • acwing246 区间最大公约数
    给定长度为N的数列A,以及M条指令,每条指令可能是以下两种之一:Clrd,表示把A[l],A[l+1],...A[r]都加上d。Qlr,表示查询A[l],A[l+1],...A[r]的最大公约数。对于每个询问,输出一个整数表示答案。分析:利用差分数组,将区间修改转换成两次单点修改。再用差分数组构造出原数组区间的......
  • NumPy 差分、最小公倍数、最大公约数、三角函数详解
    NumPy差分离散差分意味着相邻元素之间的减法。例如,对于[1,2,3,4],离散差分将是[2-1,3-2,4-3]=[1,1,1]要找到离散差分,使用diff()函数。示例:importnumpyasnparr=np.array([10,15,25,5])newarr=np.diff(arr)print(newarr)返回:[510-20],因为15-......
  • [lnsyoj509/AcWing99]约数之和
    题意原题链接求\(A^B\)的约数之和\(\bmod9901\)sol\(x\)的约数之和\(f(x)\)可以通过以下公式计算根据算数基本定理,将\(x\)分解为$$\prod_{i=1}^ka_i^{p_i}$$则$$f(x)=\prod_{i=1}^k\sum_{j=0}^{p_i}a_i^j=\prod_{i=1}^k\frac{a_i^{p_i+1}-1}{a_i-1}$$证明根据......
  • [lnsyoj98/luoguP1403]约数研究
    题意原题链接求\(1\simn\)的约数个数和sol直接算很困难,考虑换一个角度求\(1\simn\)的约数个数和,等价于求\(1\simn\)分别是范围内几个数的约数对于第\(i\)个值,在\(1\simn\)中,存在\(i,2\cdoti,3\cdoti,\cdots,k\cdoti\),共\(\lfloor\frac{n}{i}\rfloor\)因此,最终......
  • 最大公约数(gcd())和最小公倍数(lcm())的c语言和c++详细解法
    最大公约数(gcd())和最小公倍数(lcm())最大公约数:定义:两个或多个整数共有的约数中最大的一个。例如:整数12和18,他们的公约数有1、2、3、6,其中最大的公约数是6。c语言解法:辗转相除法和更相减损法1、辗转相除法:思路:先求解较大的数除以较小的数的余数,再用较小的数除以前......
  • 【每日一算法】所有元素的 最大值 和 最大公约数 相等
    题目描述Silencer76 定义一个序列是好序列,当且仅当序列中所有元素的最大值和最大公约数相等。给定一个长度为 n的正整数序列 a,请找出最长的符合好序列定义的子序列,输出它的长度。输入描述:输出描述:示例一输入512321输出2示例说明:根据题意,子序......
  • C++:最小公倍数与最大公约数
    最大公约数(GreatestCommonDivisor,GCD)最小公倍数(LeastCommonMultiple,LCM)#include<iostream>//函数:计算两个数的最大公约数(GCD),这被称为欧几里得算法intgcd(inta,intb){if(b==0)returna;returngcd(b,a%b);}//函数:计算两个数的......
  • P1734 最大约数和
    变形01背包#include<bits/stdc++.h>usingnamespacestd;constintN=1010;ints;intn,m;intv[N],w[N],f[N];intaccum(intp){//预先处理约数之和 intans=0; for(inti=1;i<=p-1;i++){//因为不包括它本身因此p-1;if(p%i==0)ans+=i; ......