NBUT 1223 Friends number

Posted Fighting Heart

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了NBUT 1223 Friends number相关的知识,希望对你有一定的参考价值。

暴力,打表。

计算出每一个数的因子之和,可以枚举$i$,让后将$i$的倍数都加上$i$。发现这样的只有$71$对,然后暴力就可以了。

#include<cstdio>
#include<cstring>
#include<cmath>
#include<algorithm>
#include<vector>
#include<map>
#include<string>
#include<iostream>
using namespace std;

int f[5000010];
int xA[200],xB[200];

int main()
{
    for(int i=1;i<=5000000;i++)
    {
        int tmp=i+i;
        while(tmp<=5000000)
        {
            f[tmp]+=i;
            tmp+=i;
        }
    }

    int sum=0;
    for(int i=1;i<=5000000;i++)
    {
        int A=i,B=f[i];
        if(B>A&&B<5000000&&f[B]==i)
        {
            xA[sum]=A;
            xB[sum]=B;
            sum++;
        }
    }

    int L,R;
    while(~scanf("%d%d",&L,&R))
    {
        int ans=0;
        for(int i=0;i<sum;i++)
        {
            if(xA[i]>=L&&xA[i]<=R&&xB[i]>=L&&xB[i]<=R) ans++;
        }
        printf("%d\n",ans);
    }


    return 0;
}

 

以上是关于NBUT 1223 Friends number的主要内容,如果未能解决你的问题,请参考以下文章

NBUT 1635 Explosion(最小顶点覆盖)

NBUT 1220 SPY

Hkhv喜欢二进制 NBUT - 1666

NBUT 1221 Intermediary

NBUT 1680 卖瓜(线段树)

NBUT 1224 Happiness Hotel 2010辽宁省赛