1770 Dota英雄传之等级炮
来源:互联网 发布:模仿他人声音软件 编辑:程序博客网 时间:2024/04/28 15:51
相信大家都知道 Dota 吧,其中有个英雄叫末日使者,它有个技能叫等级炮,其伤害原理如下:当对方等级是某些特定数的倍数时候造成额外 250 点伤害。
后来有人觉得 Dota 等级满级 25 级太少了,可以改成满级 B 级,又有人觉得 Dota 前期等级太低没意思,不如初始设成 A 级。
既然这些都改了,是不是我们也把等级炮的伤害原理也改一改呢?改成:
N 级的等级炮可以有 N 个不同的质数作为幸运数,它们分别为 P1、P2、…… 、PN。当对方的等级数不包含这些幸运数字之外的质因子时会有加成伤害,相信大家已经发现了当对方英雄是 1 级一定会承受加成伤害的。
现在问题出来了,当英雄从 A 级升到满级的过程(含 A 和 B)中,有多少个等级会承受额外伤害呢?
- 输入
输入包含多组数据。
对于每组数据,第一行为一个整数N(1 <= N <= 50),第二行则是 N 个质数 P1、P2、…… 、PN(2 <= Pi <= 50000),第三行两个数 A 和 B(1 <= A <= B <= 109)。
当 N = 0 时输入结束。- 输出
每组数据输出一行,就一个数,为英雄从 A 级升到满级的过程中会承受额外伤害的等级的个数。
- 样例输入
3
2 3 5
1 10
2
2 7
1 10
0
- 样例输出
9
5
- 提示
对于第一组数据,等级数为 1、2、3、4、5、6、8、9、10 时都会承受加成伤害。
对于第二组数据,等级数为 1、2、4、7、8 时都会承受加成伤害。
模拟题
#include<iostream>using namespace std;long long below(long long n, const int *p, const int pn){if (n == 0) return 0;if (pn == 0) return 1;long long count = 0;while (n) {count += below(n, p, pn-1);n /= p[pn-1];}return count;}int main(){int p[100], pn, a, b;while (cin >> pn && pn){for (int i=0; i<pn; i++) cin >> p[i];sort(p, p+pn);cin >> a >> b;cout << below(b, p, pn) - below(a-1, p, pn) <<endl;}return 0;}
- 1770 Dota英雄传之等级炮
- <隋唐英雄传之薛仁贵传奇>
- DOTA之屠夫环
- Dota之人生感悟
- DOTA
- 我的dota之路
- Dota的成名之路
- 古希腊英雄传
- 互联网英雄传
- 科普之医院等级
- dota游戏之我之见
- 我的dota之路(下)
- JAVA 线程 之dota英雄买药
- 九度笔记之 1494:Dota
- 金点工作室制作手札 :《圣剑英雄传之英雄救美》[ZT]
- Ajax控件之Rating(等级)
- 软件测试之缺陷等级
- OpenCart之会员等级教程
- 人生九度
- ImageCompress
- 西红柿不是随便吃的千万不要死于无知,认真读一下,将受益终生...
- android pdf包
- 我是刚来的。
- 1770 Dota英雄传之等级炮
- hdu 1823 Luck and Love
- 1773 取石子游戏
- Qt 无边框、透明、可移动的个性窗体
- 1778 学分绩点和
- c++ const
- 1779 高考录取
- Eclipse插件集合
- Maven与wtp集成使用注意事项