一个正整数的真因子是指所有能整除它的正整数(不包括自身)。
一个正整数的所有真因子之和等于其本身则被称为完数。
例如:6=1+2+3,6是完数;
而9不是,1也不是。
求在[m,n]之间的完数的个数。
输入格式:
在一行中输入m和n的值,保证m<=n,并且都是正整数(读者无需考虑)。
输出格式:
在一行中输出个数。
输入样例1:
5 30
输出样例1:
2
输入样例2:
2 5
输出样例2:
0
代码长度限制 16 KB
C (gcc)
时间限制 10000 ms
内存限制 64 MB
其他编译器
时间限制 10000 ms
内存限制 64MB
#include <stdio.h>
#include <math.h>
int yzsum(int n)
{
int i,s;
s=0;
for(i=1;i<n;i++)
if(n%i==0)
s+=i;
return s;
}
int main()
{
int n,m,num,i;
scanf("%d%d",&n,&m);
num=0;
for(i=n;i<=m;i++)
if(yzsum(i)==i)
num++;
printf("%d",num);
return 0;
}