一个正整数的真因子是指所有能整除它的正整数(不包括自身)。
一个正整数的所有真因子之和等于其本身则被称为完数。
例如:6=1+2+3,6是完数;
而9不是,1也不是。
求在[m,n]之间的完数的个数。
输入
在一行中输入m和n的值,保证m<=n,并且都是正整数(读者无需考虑)。
输出
在一行中输出个数。
输入
5 30
输出
2
输入:
2 5
输出:
0
一个正整数的真因子是指所有能整除它的正整数(不包括自身)。
一个正整数的所有真因子之和等于其本身则被称为完数。
例如:6=1+2+3,6是完数;
而9不是,1也不是。
求在[m,n]之间的完数的个数。
输入
在一行中输入m和n的值,保证m<=n,并且都是正整数(读者无需考虑)。
输出
在一行中输出个数。
输入
5 30
输出
2
输入:
2 5
输出:
0
定义一个函数求所有因子,并求和
#include <stdio.h>
int fun(int n)
{
int i,sum=0;
for(i=1;i<n;i++)
if(n%i==0)
sum += i;
return sum;
}
int main()
{
int m,n,i,count=0;
scanf("%d%d",&m,&n);
for(i=m;i<=n;i++)
if(fun(i) == i)
count++;
printf("%d",count);
return 0;
}