解题思路:
循环的应用,遍历每一个数,对每一个数进行因子求和,数组保存因子,若因子之和为该数即输出
注意事项:
该题可能会大数超时,所以因子求和时,若因子之和大于该数,直接结束循环,可以减少耗时, 个人见解,欢迎讨论,
参考代码:
#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语言代码)浏览:591 |
C语言训练-求1+2!+3!+...+N!的和 (C语言代码)浏览:542 |
简单的a+b (C语言代码)浏览:530 |
C语言程序设计教程(第三版)课后习题7.2 (C语言代码)浏览:661 |
【计算两点间的距离】 (C语言代码)浏览:1494 |
C语言程序设计教程(第三版)课后习题1.5 (C语言代码)浏览:529 |
Pascal三角 (C语言代码)浏览:652 |
分解质因数 (C++代码)浏览:1482 |
【魔板】 (C++代码)浏览:1160 |
C语言程序设计教程(第三版)课后习题3.7 (C语言代码)浏览:1293 |