解题思路:
循环的应用,遍历每一个数,对每一个数进行因子求和,数组保存因子,若因子之和为该数即输出
注意事项:
该题可能会大数超时,所以因子求和时,若因子之和大于该数,直接结束循环,可以减少耗时, 个人见解,欢迎讨论,
参考代码:
#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 人评分
点我有惊喜!你懂得!浏览:1437 |
C二级辅导-阶乘数列 (C语言代码)浏览:642 |
C语言程序设计教程(第三版)课后习题4.9 (C语言代码)浏览:717 |
C语言程序设计教程(第三版)课后习题5.4 (C语言代码)浏览:701 |
C语言训练-最大数问题 (C语言代码)浏览:648 |
printf基础练习2 (C语言代码)浏览:653 |
幸运数 (C++代码)浏览:1309 |
蚂蚁感冒 (C语言代码)浏览:816 |
剪刀石头布 (C++代码)浏览:1811 |
程序员的表白 (C语言代码)浏览:678 |