CC38:第k个数
2024-08-28 13:02:46
题目
有一些数的素因子只有3、5、7,请设计一个算法,找出其中的第k个数。
给定一个数int k,请返回第k个数。保证k小于等于100。
测试样例:
3
返回:7
解法
主要就是在于isPrime这个函数的判断上,只能有3、5、7这三个素因子,不能有11这样的;所以就可以建立一个循环来判断,首先肯定不会为偶数,偶数全部排除。在奇数中,如果有3这个因子,就先x=x/3,因子5、7也是同样的方法,如果除之后发现x为1了说明确实只有3、5、7因子中的一个或几个;但如果发现除了一圈下来还是原来的数,就说明肯定有其他因子,返回false。代码如下:
class KthNumber {
public:
bool isPrime(int x)
{
if(x%2==0)
return false;
else{
while(1)
{
int temp=x;
if(x%3==0) x=x/3;
if(x%5==0) x=x/5;
if(x%7==0) x=x/7;
if(x==1) return true;
if(x==temp)
return false;
}
}
}
int findKth(int k) {
// write code here
int i=0,j=3;
while(i!=k)
{
if(isPrime(j))
i++;
j++;
}
j--;
return j;
}
};
最新文章
- jQuery:提交表单前判断表单是否被修改过
- LintCode Binary Tree Paths
- SQL2008数据库优化常用脚本
- log4j中文乱码解决方案
- linux中Zabbix邮件报警设置配置步骤
- HDU 4617 Weapon 三维计算几何
- NOIP2006 2k进制数
- C# winCE连接SQL数据库
- 【转】windows下vs2008/2010+opencv2.2开发环境搭建
- Oops信息及栈回溯
- UVALive - 3026 Period kmp next数组的应用
- Dockerfile注意事项
- Wamp之mysql密码故事
- 【译】索引进阶(十一):SQL SERVER中的索引碎片【上篇】
- C# listview展示表格格式
- python之psutil模块(获取系统性能数据)
- 计算机基础-CPU
- express工程的优化和请求参数的处理
- 如何查看Isilon的节点的CPU的信息?
- [LeetCode] 312. Burst Balloons_hard tag: 区间Dynamic Programming