综合实践九1003完数AC

 
 

完数

Time Limit : 2000/1000ms (Java/Other)   Memory Limit : 65536/32768K (Java/Other)
Total Submission(s) : 183   Accepted Submission(s) : 115
Problem Description
完数的定义:如果一个大于1的正整数的所有因子之和等于它的本身,则称这个数是完数,比如6,28都是完数:6=1+2+3;28=1+2+4+7+14。 本题的任务是判断两个正整数之间完数的个数。
 
Input
输入数据包含多行,第一行是一个正整数n,表示测试实例的个数,然后就是n个测试实例,每个实例占一行,由两个正整数num1和num2组成,(1<num1,num2<10000) 。
 
Output
对于每组测试数据,请输出num1和num2之间(包括num1和num2)存在的完数个数。
 
Sample Input
    
    
2 2 5 5 7
 

Sample Output
    
    
0 1
 


#include<iostream>
using namespace std;
int main()
{
int  num,m,n,a,i,j,count=0,sum=0;
cin >> num;
while (num--)
{
cin >> m >> n;
if (m > n){
a = m;
m = n;
n = a;
}//判断m,n大小,若输入m>n的情况,将m,n值交换。这一步不会,经谢补员指点才想起来。
for (j = m; j <= n; j++)
{
for (i = 1; i < j; i++)
{
if (j%i == 0)
sum = sum + i;
}
if (j == sum)
count++;


sum = 0;
}
cout << count << endl;
count = 0;

}
system("pause");
return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值