代码

hlt0310  •  1年前


0到10^5之间的完全数只有6,28,496,8128,根据这个特点写代码即可通过。

#include<bits/stdc++.h>
using namespace std;
/*
时间限制 : 1 秒
内存限制 : 128 MB
如果一个数字等于它的真因子之和,则称为完全数。例如6的真因子是1,2,3,且6=1+2+3,所以6是完全数;28也是完全数,因为28=1+2+4+7+14。求闭区间[n,m]中完全数的个数。

数据范围:0<n<=m<=10^5

输入
一行两个正整数,分别表示n和m

输出
一行一个整数

样例
输入复制
1 30
输出复制
2
*/
int n,m,ans=0;
int main()
{
	scanf("%d %d",&n,&m);
	for(int i=n;i<=m;++i)
		if(i==6||i==28||i==496||i==8128) ++ans;
	printf("%d",ans);
	return 0;
}

评论:

请先登录,才能进行评论