2577 - B.鑫神说黑雯神系列---因子之和,雯神说“so easy ! 妈妈再也不用担心我的学习了”

通过次数

0

提交次数

0

时间限制 : 1 秒 内存限制 : 128 MB

雯神最牛比!雯神最牛比!雯神最牛比!雯神最牛比!雯神最牛比!雯神最牛比!雯神最牛比!雯神最牛比!雯神最牛比!

判断一个数的所有因子之和和他本身相比较的大小,

题目输入

多组数据输入,输入一个正整数n(n<=10^9),

题目输出

输出“<”,">","=";

输入/输出样例

输入格式

6
5
12

输出格式

=
<
>

C语言解答

#include <stdio.h>
int main()
{
  int m,sum,i,n;
  while(scanf("%d",&m)!=EOF)
  {   if(m==1)
      {
       printf("<\n");
      continue;
      }
      sum=1;
       n=m;
    for(i=2;i<    n;i++)
    {
      if(m%i==0)
      {
        if(m/i!=i)
        {
        sum+=i+m/i;
        n=m/i;
        }
        else
        {
        sum+=i;
        n=m/i;
        }
      }
    }
    if(sum<m)
    printf("<\n");
    if(sum==m)
    printf("=\n");
    if(sum>m)
    printf(">\n");
  }

}


C++解答

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

int main()
{
    //freopen("Binput.txt","r",stdin);
    //freopen("Boutput.txt","w",stdout);
    long long n;
    while(cin>>n)
    {
        long long  sum=0;
        int flag=0;
        if(n==0)
        {
            return 0;
        }
        if(n==1)
        {
            cout<<"<"<<endl;
        }
        else
        {
             for(long long  i=2;i*i<=n;i++)
            {
                    if(n%i==0)
                {
                    sum+=i+(n/i);
                }
            }
            sum+=1;
            if((int)sqrt(n)*(int)sqrt(n)==n)
            {
                sum-=sqrt(n);
            }
                if(sum<n)
            {
                flag=1;
            }
            else if(sum>n)
            {
                flag=2;
            }
            if(flag==1)
            {
                cout<<"<"<<endl;
            }
            else if(flag==2)
            {
                 cout<<">"<<endl;
            }
            else
            {
                cout<<"="<<endl;
            }

        }
    }

    return 0;
}