01/10/2018, 00:29

Tính tổng tất cả các ước nhỏ hơn số nguyên dương n(có dùng sqrt(n) ấy)

em muốn tạo 1 chương trình tính tổng tối ưu nhưng code em bị sai…em test thì đúng với giá trị 4,6,10 nhưng khi đến số 12,24 thì bị sai,ai giúp em với,

#include <iostream>
#include <cmath>
using namespace std;
int main()
{
	int n, S = 1,a;
	cin >> n;
	a = sqrt(n);
	for (int i = 1; i <=(n/a);i = i++)
	{
		
		if (n%i == 0)
		{
			if(n/i!=n)
			{
				S = S + n / i;
			}
		}
		
	}
	cout << S << endl;
}
Nguyễn Xuân Phúc viết 02:38 ngày 01/10/2018
for (int i = 1; i <= a; i++)
    if (n % i == 0){
        S += i;
        if (n/i != i) S += i;
    }
Nhựt Thạch viết 02:30 ngày 01/10/2018

em bỏ code của anh vào chạy nhưng vẫn sai.anh coi lại giúp em với

Nguyễn Xuân Phúc viết 02:37 ngày 01/10/2018

à nhầm, if (n/i != i) S += n/i; mới đúng

Bài liên quan
0