解题思路:
循环的应用,遍历每一个数,对每一个数进行因子求和,数组保存因子,若因子之和为该数即输出
注意事项:
该题可能会大数超时,所以因子求和时,若因子之和大于该数,直接结束循环,可以减少耗时, 个人见解,欢迎讨论,
参考代码:
#include"iostream" using namespace std; int main(){ int n; cin>>n; for(int i=2;i<n;i++){ int sum=0,count=0,a[i]; for(int j=1;j<i;j++){ if(i%j==0){ sum+=j; a[count++]=j; if(sum>i){ break; } } } if(sum==i){ cout<<i<<" its factors are "; for(int j=0;j<count;j++){ cout<<a[j]<<" "; } cout<<endl; } } return 0; }
0.0分
0 人评分
C语言训练-素数问题 (C语言代码)浏览:1654 |
C语言程序设计教程(第三版)课后习题8.1 (C语言代码)浏览:438 |
人见人爱A+B (C语言代码)浏览:626 |
WU-蓝桥杯算法提高VIP-Quadratic Equation (C++代码)浏览:1742 |
C语言程序设计教程(第三版)课后习题1.5 (C语言代码)浏览:468 |
C二级辅导-分段函数 (C语言代码)浏览:593 |
勾股数 (C语言代码)浏览:799 |
幸运数 (C++代码)浏览:2859 |
1202题解浏览:611 |
整数分类问题 为什么输出总是数字8啊浏览:442 |