题目描述
有一些数的素因子只有3、5、7,请设计一个算法,找出其中的第k个数。
给定一个数int k,请返回第k个数。保证k小于等于100。
测试样例:<span style="font-size:18px;">3</span>
返回:
<span style="font-size:18px;">7</span>
某些数仅仅是由素因子3、5、7构成的,例如:3、5、7、9...等等。但是:30,并不是,因为它包括了2;
那么仅仅使用循环来判断就可以了。
public class KthNumber {
public int findKth(int k) {
// write code here
int i = 3;
int count = 0;
while(count < k){
if(i % 2 != 0){
int b = i;
while(b % 3 == 0||b % 5 == 0||b % 7 == 0){
if(b % 3 == 0){
b = b / 3;
}else if(b % 5 == 0){
b = b / 5;
}else if(b % 7 == 0){
b = b / 7;
}
if(b == 1){
count ++;
}
}
}
i++;
}
return --i;
}
}
测试数据地址: http://www.nowcoder.com/practice/d5e776441a6e41ae9f9859413bdc1eca?tpId=8&tqId=11031&rp=3&ru=/ta/cracking-the-coding-interview&qru=/ta/cracking-the-coding-interview/question-ranking