c语言输出1~1000之间的所有完数。要求自定义一个函数,功能是判断某个正整数是否为完数,如果是完数,函数返回值为1,否则为0(一个数的所有因子之和等于该本身,该数就是完数。如6、28都是完数;6=1+2+3;28=1+2+4+7+14)。
1个回答
关注
展开全部
#include "stdio.h"
void main() {
int i, j, sum, k;
for (i = 2; i <= 1000; i++) {
// 每判断一个数时,将sum置为0
sum = 0;
// 这个地方不写“=”,排除这个数自身 真因子指的是除了自身以外的约数,完数概念中的“因子”是“真因子”
for (j = 1; j < i; j++) {
// 如果能被整除,则j即为i的因子
if (i % j == 0) {
// 将这个数的各个因子加起来
sum += j;
}
咨询记录 · 回答于2022-04-18
c语言输出1~1000之间的所有完数。要求自定义一个函数,功能是判断某个正整数是否为完数,如果是完数,函数返回值为1,否则为0(一个数的所有因子之和等于该本身,该数就是完数。如6、28都是完数;6=1+2+3;28=1+2+4+7+14)。
#include "stdio.h"void main() { int i, j, sum, k; for (i = 2; i <= 1000; i++) {// 每判断一个数时,将sum置为0 sum = 0;// 这个地方不写“=”,排除这个数自身 真因子指的是除了自身以外的约数,完数概念中的“因子”是“真因子” for (j = 1; j < i; j++) {// 如果能被整除,则j即为i的因子 if (i % j == 0) {// 将这个数的各个因子加起来 sum += j; }
}// 说明这个数是完数,找到其因子并按照规定格式输出即可 if (sum == i) {// 输出前半部分 “x its factors are” printf("%d its factors are ", i);// 输出这个数的每一个因子 for (k = 1; k < i; k++) { if (i % k == 0) { printf("%d,", k); } }// 光标退到最后一个逗号位置之上然后输出空格使逗号消失 printf("\b ");// 换行
你好
有问题随时留言
c语言定义函数,形参为两个int类型变量,功能是显示这两个数的最大公约数和最小公倍数。这道题怎么写
【问一问自定义消息】
你好。好的稍等
1、形参即形式参数,在函数定义中,在整个函数体内都可以使用,离开该函数则不能使用。2、实参即实际参数,实参出现在主调函数中,进入被调函数后,实参变量也不能使用。简单来说,形参就是在函数定义时函数名后面括号内定义的变量,实参就是函数以外定义的变量。形参在函数被调用完结束之后便会被释放,实参则会维持原有的值不变,这里注意的是,在定义函数的时候会把实参的值赋值给形参,并不是实参本身进入函数参与。