TOj 3711. Cow Pals 简单

这个题本来很容易,特水,结果因为读题不认真。。没有注意到,

 Cows that are superpals of themselves are shunned; do not consider them! 这句话,导致纠结了好长好长时间 ,

下次读题先认真一些!!!

另外,这个数据量是18000, 一共就不到10组数字,可以打表;

下面附代码:

直接做:

/*
Accepted	3711	C++	0.5K	0'00.59"	1352K
*/

#include <iostream>
using namespace std;
int n,s,p;
bool func(int k)
{
    int sum=1,summ=1;
    for(int i=2;i*2<=k;i++)
        if(k%i==0)sum+=i;
    for(int i=2;i*2<=sum;i++)
        if(sum%i==0) summ+=i;
    if(k==summ&&k!=sum)
    {
        s=k;p=sum;
        return true;
    }
    else return false;
}
int main()
{

    while(cin>>n)
    {
        for(int i=n;;i++)
            if(func(i)) break;
        cout<<s<<" "<<p<<endl;
    }
}

打表代码:

/*
Accepted	3711	C++	0.5K	0'00.00"	1352K
*/

#include <iostream>
using namespace std;
int s[24][2]={{1,1},{220,284},
{1184,1210},{2620, 2924},{5020,5564},{6232,6368},
{10744,10856},{12285,14595},{17296,18416}};
int main()
{
    int n,k;
    while(cin>>n)
    {
        bool f=1;
        k=0;
       while(1)
        {
            if(n>s[k][1])k++;
            else if(n<=s[k][0]) {f=0;break;}
            else if(n>s[k][0]&&n<=s[k][1]) break;
        }
        if(f) cout<<s[k][1]<<" "<<s[k][0]<<endl;
        else cout<<s[k][0]<<" "<<s[k][1]<<endl;
    }
}


你可能感兴趣的:(读题)