社区讨论
站外题求条
灌水区参与者 2已保存回复 1
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 1 条
- 当前快照
- 1 份
- 快照标识符
- @m4b57i46
- 此快照首次捕获于
- 2024/12/05 17:56 去年
- 此快照最后确认于
- 2025/11/04 13:19 4 个月前
题目描述
最近晨晨对数字很感兴趣,特别是她认为“完全数”是最美的数字,所谓完全数是真约数之和加上1等于它本身的数。例如 28 的真约数是2,4,7,14,并且 1+2+4+7+14=28,所以 28 是完全数。晨晨想找出一段连续数据里面的所有完全数,如求 x~y(2≤x≤y≤10000) 中的完全数。但是她又感觉十进制的输出没有十六进制好看,所以她想把找到的完全数用 十六进制输出,如果这段数据里面没有完全数就输出“no”。
补充:真约数是指一个数除了1和它自己之外的所有约数就是真约数。例如:6的约数是1,2,3,6,真约数是2和3。
输入
一行:包括两个数,x y 代表求 x~y 之间的完全数。
输出
一行:x~y 之间用十六进制表示的完全数,数之间用空格分开。
样例输入 复制
2 29
样例输出 复制
6 1C
最近晨晨对数字很感兴趣,特别是她认为“完全数”是最美的数字,所谓完全数是真约数之和加上1等于它本身的数。例如 28 的真约数是2,4,7,14,并且 1+2+4+7+14=28,所以 28 是完全数。晨晨想找出一段连续数据里面的所有完全数,如求 x~y(2≤x≤y≤10000) 中的完全数。但是她又感觉十进制的输出没有十六进制好看,所以她想把找到的完全数用 十六进制输出,如果这段数据里面没有完全数就输出“no”。
补充:真约数是指一个数除了1和它自己之外的所有约数就是真约数。例如:6的约数是1,2,3,6,真约数是2和3。
输入
一行:包括两个数,x y 代表求 x~y 之间的完全数。
输出
一行:x~y 之间用十六进制表示的完全数,数之间用空格分开。
样例输入 复制
2 29
样例输出 复制
6 1C
代码
CPP#include<bits/stdc++.h>
using namespace std;
void zhuan(int n,int r)
{
if(n==0) return ;
int m=n%r;
if(m<0)
m-=r,n+=r;
if(m>=10)
m='A'+m-10;
else
m+='0';
zhuan(n/r,r);
printf("%c",m);
return ;
}
int sb(int num)
{
int len=0;
for(int j=1;j<=num;j++)
{
if(num%j==0)
len+=j;
}
if(len==num)
return len;
else
return -1;
}
int main()
{
int n,nl,k;
string ans="";
cin>>n>>nl;
for(int i=n;i<=nl;i++)
{
if(sb(n)!=-1)
cout<<sb(n)<<" ";
}
return 0;
}
回复
共 1 条回复,欢迎继续交流。
正在加载回复...