解题思路:
构建两层循环
第一层循环n范围内的数
第二层循环
从1开始 将能够整除的数进行存储并将其求和
然后 进行完数的判断 输出
注意事项:
数组定义大小要足够大,在每次执行完第二层循环时进行sum和k的初始化!!重点
参考代码:
#include<bits/stdc++.h>
using namespace std;
void wanshu( int n)
{
int sum = 0, arr[200] , k = 0;
for (int i = 6; i <= n; i++)
{
for (int j = 1; j < i; j++)
{
if (i % j == 0)//整除判断
{
sum += j;
arr[k] = j;
k++;
}
}
if (sum == i)//完数判断
{
cout << sum<<" its factors are ";
for (int b = 0; b < k; b++)
cout << arr[b]<<" ";
cout << endl;
}
sum = 0;
k = 0;//初始化 使第一层最初进行循环时 保持sum和k的值为0
}
}
int main()
{
int a;
cin >> a;
wanshu(a);
return 0;
}
0.0分
2 人评分
A+B for Input-Output Practice (V) (C语言代码)浏览:640 |
C语言训练-大、小写问题 (C语言代码)浏览:649 |
WU-蓝桥杯算法提高VIP-勾股数 (C++代码)浏览:1685 |
WU-整除问题 (C++代码)浏览:648 |
校门外的树 (C语言代码)浏览:733 |
【蟠桃记】 (C语言代码)浏览:1084 |
C语言程序设计教程(第三版)课后习题1.5 (C语言代码)浏览:468 |
C语言程序设计教程(第三版)课后习题5.6 (C语言代码)浏览:580 |
C语言程序设计教程(第三版)课后习题5.5 (C语言代码)浏览:590 |
罗列完美数 (C语言代码)浏览:519 |