【发布时间】:2016-12-24 07:59:03
【问题描述】:
一个丰富的数是一个自然数,其因数之和大于该数本身。我必须用 C 编写一个程序,它将采用 2 个自然数 k 和 m,假设 k (开始)第一项 和长度(项数) k 和 m 之间连续丰富数的最长序列,包括这两个数。 如果存在多个这样的长度相同的序列,那么它必须输出最小的开头。 如果这样的序列不存在,那么它必须输出方便的消息。
对不起我的英语,我希望一切都清楚。所以我需要粗体部分的帮助。这是我到目前为止所做的:
int main(void) {
int k,m,i,j,counter=0,sum;
scanf("%d", &k);
scanf("%d", &m);
for(i=k; i<=m; i++) {
sum=0;
for(j=1; j<i; j++) {
if(i%j==0) sum=sum+j;
}
if(i<sum) {
counter++;
printf("%d\n", i);
}
}
if(counter==0) printf("There aren't any abundant numbers!");
else printf("%d", counter);
return 0;
}
当我只需要第一项时,这会输出 k 和 m 之间的所有丰富数。至于这个:如果存在多个这样的长度相同的序列,那么它必须输出最小的开头,我什至不明白他们的意思。 k和m之间怎么可能存在不止一个这样的序列?
【问题讨论】:
-
请显示示例输入及其预期输出!