2577 - B.鑫神说黑雯神系列---因子之和,雯神说“so easy ! 妈妈再也不用担心我的学习了”
时间限制 : 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; }