D. Soldier and Number Game
2016-10-02 17:28
274 查看
D. Soldier and Number Gametime limit per test3 secondsmemory limit per test256 megabytesinputstandard inputoutputstandard outputTwo soldiers are playing a game. At the beginning first of them chooses a positive integer n and gives it to the second soldier. Thenthe second one tries to make maximum possible number of rounds. Each round consists of choosing a positive integer x > 1, such that n isdivisible by x and replacing n with n / x.When n becomes equal to 1 andthere is no more possible valid moves the game is over and the score of the second soldier is equal to the number of rounds he performed.To make the game more interesting, first soldier chooses n of form a! / b! forsome positive integer a and b (a ≥ b).Here by k! we denote the factorial of k thatis defined as a product of all positive integers not large than k.What is the maximum possible score of the second soldier?InputFirst line of input consists of single integer t (1 ≤ t ≤ 1 000 000)denoting number of games soldiers play.Then follow t lines, each contains pair of integers a and b (1 ≤ b ≤ a ≤ 5 000 000)defining the value of n for a game.OutputFor each game output a maximum score that the second soldier can get.Examplesinput
2 3 1 6 3output
2 5
#include <cstdio>#include <cstdlib>#include <iostream>#include <climits>using namespace std;typedef long long int ll;const int maxn = 5e6+5;int prime[maxn];ll num[maxn];void Init(){for(int i=2; i<=5000000; i++){if(prime[i]==0){for(int j=i; j<=5000000; j+=i){int tmp = j;while(tmp%i==0){num[j]++;tmp /= i;}prime[j] = 1;}}}for(int i=1; i<=5000000; i++)num[i] = num[i]+num[i-1];}int main(){Init();int T;scanf("%d",&T);int a,b;while(T--){scanf("%d %d",&a,&b);printf("%I64d\n",num[a]-num[b]);}return 0;}
相关文章推荐
- codeforces Soldier and Number Game(dp+素数筛选)
- DP+埃氏筛法 Codeforces Round #304 (Div. 2) D. Soldier and Number Game
- Codeforces Round #304 (Div. 2)-D. Soldier and Number Game,素因子打表!
- Codeforces546D:Soldier and Number Game(求质因子个数)
- Soldier and Number Game--筛素数
- codeforces-546D-Soldier and Number Game【思维】(求质因子个数)
- 【codeforces 546D】Soldier and Number Game
- CodeForces 828D Soldier and Number Game(数学)
- Soldier and Number Game
- Codeforces546D:Soldier and Number Game
- Codeforces Round #304 (Div. 2) D. Soldier and Number Game 数学 质因数个数
- Codeforces Round #304 (Div. 2) D. Soldier and Number Game
- [Codeforces546D]Soldier and Number Game[dp][实现][素数筛][分解整数][数学]
- Soldier and Number Game---cf546D(打表求n的素因子个数)
- CodeForces546D:Soldier and Number Game(筛区间素数因子个数和)
- 【CodeForces】546D - Soldier and Number Game(线性筛法)
- B - Soldier and Number Game
- Codeforces D546:Soldier and Number Game
- Codeforces Round #304 (Div. 2) D - Soldier and Number Game
- D-Soldier and Number Game(CF546D) Codeforces Round #304 (Div. 2)