算法思想整理

int isPerfectNumber(int num) {

int sum = 0;

int i;

for ( i = 1; i <= num / 2; i++) {

if (num % i == 0) {

sum += i;

}

}

return sum == num;

}

 

int main() {

int isPerfectNumber(int num);

int m, n;

int i;

int cnt=0;

int c=2;

scanf("%d,%d", &m, &n);

if(m>9999||n>9999){

 printf("error");

}else if(m<=0 ||n<=0){

 printf("error");

}else{

 if (m > n) {

int temp = m;

m = n;

n = temp;

}

 

for ( i = m; i <= n; i++) {

if (isPerfectNumber(i)) {

 cnt++;

 if(cnt==c){

  printf(",");

  c++;

 }

printf("%d", i);

}

 

}

}

这段代码没什么难的,关键在于“,”,题目要求输出如果是在1-2000内的完美数,则格式为6,28,496    这个逗号输出的思想很好。就是要跟着前面的,不要去考虑后面

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值