数値のすべての除数の合計を求めたい、つまり数値が6の場合、1 + 2 + 3 + 6 = 12を持ちたいと思う。それに近づくために私の試みは、次のとおりです。数値のすべての整数除数の合計
#include <iostream>
using namespace std;
int divisorsSum(int n){
int sum=0;
for (int i=1; i<=n; i++){
if(n%i==0)
i=sum+i;
}
return sum;
}
int main()
{
cout<<divisorsSum(6);
}
驚くほどそれがすべてでは動作しません。しかし、それは何も返さないし、私は私のコードが間違っているかを把握することはできませんよ。
したがって、問題を解決するにはどうすればいいですか? 私は専門家ではなく、はい私は間違いを犯します。
1 + 2 + 3 + 6 = 12。 11ではない。 – user3437460
i = i?これは未定義です。 –
'i = sum + i;'は 'sum = sum + i'または' sum + = i; 'でなければなりません。 – NathanOliver