CodeForces 546D (求素因子个数)

原创 2016年06月01日 10:42:37

/*****************************
   CodeForces 546D
   Author:herongwei
   Created Time: 2016/5/31 13:00:00
   File Name   : main.cpp
给出一个n,n开始是a!/b!,每次用一个x去整除n得到新的n,
最后当n变成1的时候经过了几轮得分就是这个轮数,
要求最大的分数是多少
[solve]
就是一个求整数质因子个数的题目,
阶乘我们不需要算,我们知道在a>b的时候,
b!都约掉了,那么我们只需计算出每个数的质因数有几个,
然后前缀和计算出1~n的质因子之和,
Input
2
3 1
6 3
Output
2
5
*****************************/

#include <bits/stdc++.h>
using namespace std;

typedef long long LL;
const int maxn = 5e6+10;

LL n,m,dp[maxn];

void init()
{
    dp[1]=dp[2]=0;
    for(int i=2; i<maxn; ++i)
    {
        if(!dp[i])
        {
            for(int j=i; j<maxn; j+=i)
            {
                dp[j]=dp[j/i]+1;
            }
        }
    }
    for(int i=2; i<maxn; ++i)
       dp[i]=dp[i]+dp[i-1];
}
int main()
{

    //freopen("1.txt","r",stdin);
    init();
    /*for(int i=0; i<10; ++i)
    {
        cout<<"i= "<<i<<" "<<dp[i]<<endl;
        i= 0 0
        i= 1 0
        i= 2 1
        i= 3 1
        i= 4 2
        i= 5 1
        i= 6 2
        i= 7 1
        i= 8 3
        i= 9 2
    }
    */
    int t;scanf("%d",&t);
    while(t--)
    {
        scanf("%d %d",&n,&m);
        printf("%I64d\n",dp[n]-dp[m]);
    }
    return 0;
}

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

Codeforces Round #304 (Div. 2) 546D Soldier and Number Game 质因子个数

题意:两个军人玩游戏,第一个军人把一个数n交给第二个军人,第二个军人把n用x整除n,然后把n/x交给第一个军人。n=1时结束。问最大的回合数 思路:就等于求一个数的质因子个数,比如说4,就是 2*2...

codeforces 665F. Four Divisors(求n以内因子数是4的数的个数)

F. Four Divisors time limit per test 10 seconds memory limit per test 768 megabytes input stan...
  • YHYYXT
  • YHYYXT
  • 2016年09月23日 19:49
  • 681

HDU 3864 D_num (求因子个数)

题目大意: 给一个数 N(1

Codeforces Round #338 (Div. 2) D. Multipliers (求因子积)

D. Multiplierstime limit per test 2 seconds memory limit per test 256 megabytes input standard ...

Codeforces Round #304 (Div. 2) D. Soldier and Number Game(筛选素因子,前缀和)

题目链接:点击打开链接 题意:两个整数a, b。求出a, a - 1, a - 2........b +1这些整数最多能被拆分成多少个数相乘。 思路:数量最多,当然都要拆成素数。因为是要查1e6次...
  • CillyB
  • CillyB
  • 2016年11月18日 20:21
  • 169

[Codeforces546D]Soldier and Number Game[dp][实现][素数筛][分解整数][数学]

原题链接:[Codeforces546D]Soldier and Number Game[dp][实现][素数筛][分解整数][数学] 题意分析:本题从实质上来说,就是给你两个整数a, b。求出a, ...

ZOJ-1577 求素因子个数 + gcd和lcm的性质?(或者你也可以暴力?)

题意: 给出两个数x,y,求有多少组p,q,满足gcd(p,q) = x 且 lcm(p,q) = y。 注意:pair(p, q) 和 pair(q, p)是两种方案。 思路: 两个很易得的结...
  • yo_bc
  • yo_bc
  • 2017年05月02日 15:39
  • 195

CodeForces-546D.Soldier and Number Game

Two soldiers are playing a game. At the beginning first of them chooses a positive integer n and giv...

Codeforces 498D Unbearable Controversy of Being(暴力求菱形个数)

n(≤3000)个点m(≤30000)条边的有向图,统计下图这种菱形的数量。
  • Just_Lm
  • Just_Lm
  • 2017年01月28日 16:00
  • 99
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:CodeForces 546D (求素因子个数)
举报原因:
原因补充:

(最多只允许输入30个字)