求大佬帮忙解答c语言的题目!
①求1到n以内(包括n,n<1000)所有的完全数。n由键盘输入(每个数后面带一个空格)要求:(1)编写如下接口的功能函数:int fun(int n),该函数的功能是判断n是不是完全数。若是,返回1,若不是返回0。
(2)main函数去调用该功能函数。
完全数定义:该数的所有因子之和为该数的两倍。如6的因子是1,2,3,6。6*2=1+2+3+6.所以6是完全数
样例:
输入
30
输出
6 28
2021-03-18 15:40
程序代码:#include <stdio.h>
#include <stdbool.h>
bool is_perfect_umber( unsigned v )
{
unsigned sum = 0;
for( unsigned i=1; i<v; ++i )
if( v%i == 0 )
sum += i;
return sum == v;
}
int main( void )
{
unsigned n;
scanf( "%u", &n );
for( unsigned i=1; i<=n; ++i )
if( is_perfect_umber(i) )
printf( "%u ", i );
}
程序代码:#include <stdio.h>
int main( void )
{
unsigned n;
scanf( "%u", &n );
printf( "%.*s", (n>=6)*2+(n>=28)*3+(n>=496)*4, "6 28 496 " );
}
2021-03-18 16:21


2021-03-18 18:13
2021-03-18 20:56
2021-03-19 10:50
2021-03-19 10:50