码迷,mamicode.com
首页 > 其他好文 > 详细

NBUT 1223 Friends number

时间:2017-03-28 18:39:07      阅读:168      评论:0      收藏:0      [点我收藏+]

标签:using   printf   pre   sum   return   tor   include   namespace   print   

暴力,打表。

计算出每一个数的因子之和,可以枚举$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

标签:using   printf   pre   sum   return   tor   include   namespace   print   

原文地址:http://www.cnblogs.com/zufezzt/p/6636190.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!