计算第k个质因数只能为3,5,7的数
英文描述:Design an algorithm to find the kth number such that the only prime factors are 3, 5, and 7
思路:质因数只能为3,5,7,设这个数为val,则val = (3^i)(5^j)(7^n) (i,j,n>=0),显然第1个数为1,第2个为1*3,第3个为1*5,第4个为1*7,第5个为3*3,第6个为3*5,第7个为3*7...
如果将钱k-1个数组成一个链表r,可以看出,第k个数为3或5或7乘以前k-1个数中的某一个,得到一个还未加入r的最小的数。为了防止过多的循环,我们应对这个最小的数保持记录。
代码:
#include<queue> int findnum(int k)
{
if (k <= )
return ;
int val =;
queue<int> Q3; Q3.push();
queue<int> Q5; Q5.push();
queue<int> Q7; Q7.push(); for (k--; k > ; k--)
{
val = findmin(Q3.front(), Q5.front(), Q7.front());
if (val == Q7.front())
Q7.pop();
else
{
if (val == Q5.front())
Q5.pop();
else
{
Q3.pop();
Q3.push(val * );
}
Q5.push(val * );
}
Q7.push(val*);
} return val;
}
int findmin(int a, int b, int c)
{
int result = ;
if (a < b)
result = a;
else result = b;
if (result > c)
result = c;
return result;
}
我使用了C++ STL模板queue(队列,先入先出),Q3,Q5,Q7分别用来记录上一次最小的数乘以3,5,7的结果,以便以后使用。最小的数一旦使用后,立即出队。
计算第k个质因数只能为3,5,7的数的更多相关文章
- 【算法】php计算数字k在一段数字范围出现的次数
计算数字k在0到n中的出现的次数,k可能是[0~9]内的一个值. 例如数字n=25,k=1,在1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 ...
- 计算n^k的开头三位和末尾三位(fmod(double x,double y)函数的引入)
C 库函数 double fmod(double x, double y) 返回 x 除以 y 的余数. 所以fmod(x,1)得到的就是小数部分的值(如fmod(3.35,1)==0.35) htt ...
- 计算第K个素数
暂时没有时间整理,先放在这里: http://www.quora.com/Prime-Numbers/What-are-good-ways-to-find-nth-prime-number-in-th ...
- Gym - 102346D Denouncing Mafia 取k叶子节点使叶子到根覆盖节点数最大
给你一棵树 你可以取K条链 一条链为根到叶子的路径 问你K条链最多覆盖树上多少个节点 贪心的做 肯定是每次取最长链 但是取完最长链 一颗树就会变为若干个森林 我们要维护当前所有森林里的最长链 ans数 ...
- OpenJudge计算概论-能被3,5,7整除的数
/*===================================== 能被3,5,7整除的数 总时间限制: 1000ms 内存限制: 65536kB 描述 输入一个整数,判断它能否被3,5, ...
- while循环计算1-100和,1-100内偶数/奇数/被整除的数的和
文章地址 https://www.cnblogs.com/sandraryan/ <!DOCTYPE html> <html lang="en"> < ...
- [CF403D]Beautiful Pairs of Numbers
题意:给定$n,k$,对于整数对序列$\left(a_1,b_1\right),\cdots,\left(a_k,b_k\right)$,如果$1\leq a_1\leq b_1\lt a_2\leq ...
- bzoj5093:图的价值(第二类斯特林数+NTT)
传送门 首先,题目所求为\[n\times 2^{C_{n-1}^2}\sum_{i=0}^{n-1}C_{n-1}^ii^k\] 即对于每个点\(i\),枚举它的度数,然后计算方案.因为有\(n\) ...
- 【转】Alchemy的使用和多项式批量计算的优化
原文:http://www.cnblogs.com/flash3d/archive/2012/01/30/2332158.html ================================== ...
随机推荐
- Android 实例子源代码文件下载地址380个合集
android 城市列表特效 - 触摸查找源码 .rar: http://www.t00y.com/file/64337887 android 日记系统源码(数据库的基本操作) .rar: htt ...
- DDL、DML、DCL的理解
1.DDL 1-1.DDL的概述 DDL(Data Definition Language 数据定义语言)用于操作对象和对象的属性,这种对象包括数据库本身,以 ...
- Object类型与Array类型
总结--JS中的引用类型: Object类型,Array类型,Boolean类型,Number类型,String类型,Date类型, Function类型,RegExp类型,单体内置对象(Global ...
- 将数组里的元素拼接成sql里的in条件
/** * 将数组里的元素拼接成sql里的in条件,如'a1','a2','a3' * @param array * @returns */function makeSqlInStr(array){ ...
- css3 calc()方法详解
calc()对大家来说,或许很陌生,不太会相信calc()是css中的部分.因为看其外表像个函数,既然是函数为何又出现在CSS中呢?这一点也让我百思不得其解,今天有一同事告诉我,说CSS3中有一个属性 ...
- [issue] dyld`dyld_fatal_error: -> 0x120015088 <+0>: brk #0x3
iOS "dyld`dyld_fatal_error: -> 0x12000d088 <+0>: brk #0x3"错误 根据上面的博客里的方法二 尝试解决方法二 ...
- 微信小程序-视图
数据绑定 <!--wxml--> <view> {{message}} </view> // page.js Page({ data: { message: 'He ...
- JS城市data
CityData = { "中国": { "北京": ["东城区", "西城区", "崇文区", & ...
- MYSQL添加新用户 MYSQL为用户创建数据库 MYSQL为新用户分配权限
1.新建用户 //登录MYSQL @>mysql -u root -p @>密码 //创建用户 mysql> insert into mysql.user(Host,User,Pas ...
- GIS服务器需求分析
一. 需求概要 1 边界 核心职责 接收并存储外部各方系统GPS数据 GPS数据实时分发, 轨迹检索 2 流程 GIS客户端向GIS服务器订购 GIS客户端向GIS服务器订购号码(仅有号码这一项业 ...