一个正整数的真因子是指所有能整除它的正整数(不包括自身)。
一个正整数的所有真因子之和等于其本身则被称为完数。
例如: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;
}

该代码实现了一个程序,用于查找给定区间[m, n]内完数的数量。完数是指所有真因子(不包括自身)之和等于其本身的正整数。程序通过遍历区间内的每个数并计算其真因子之和来确定完数的个数。
4763





