Tính tổng các ước số của một số nguyên trong C
Trong lập trình, việc tính tổng các ước số của một số nguyên là một công việc phổ biến và hữu ích. Trong bài tập này, mình sẽ tìm hiểu cách tính tổng các ước số của một số nguyên trong ngôn ngữ lập trình C.

Bài viết này được đăng tại freetuts.net, không được copy dưới mọi hình thức.
Chương trình tính tổng các ước số của một số nguyên trong ngôn ngữ lập trình C
Cách giải quyết:
Để giải quyết bài toán này, chúng ta sẽ thực hiện các bước sau:
- Viết một hàm để tính tổng các ước số của một số nguyên được nhập vào.
- Trong hàm tính tổng, mình sẽ duyệt qua các số từ 1 đến căn bậc hai của số nguyên đã cho để kiểm tra xem chúng có phải là ước số không. Nếu có, chúng ta sẽ cộng giá trị của ước số đó vào biến tổng.
Hãy xem cách giải bài lập trình sau:
Bài viết này được đăng tại [free tuts .net]
File: sum_of_divisors.c
#include <stdio.h>
#include <math.h>
// Hàm tính tổng các ước số của một số nguyên
int sumOfDivisors(int num) {
int sum = 0;
for (int i = 1; i <= sqrt(num); i++) {
if (num % i == 0) {
if (i == (num / i)) {
sum += i;
} else {
sum += (i + num / i);
}
}
}
return sum;
}
int main() {
int num;
printf("freetuts.net");
printf("Nhap vao mot so nguyen duong: ");
scanf("%d", &num);
// Tính tổng các ước số của số nguyên đã nhập
int total = sumOfDivisors(num);
printf("Tong cac uoc so cua %d la: %d\n", num, total);
return 0;
}
Kết quả:

Giải thích :
- Trong code trên, mình đã sử dụng một vòng lặp để duyệt qua các số từ 1 đến căn bậc hai của số nguyên đã cho để kiểm tra xem chúng có phải là ước số không.
- Nếu số nguyên đó chia hết cho i, mình sẽ cộng giá trị của i và của num/i vào biến tổng (nếu chúng khác nhau).
- Kết quả cuối cùng là tổng của các ước số của số nguyên đã cho.
Việc này giúp mình tính tổng các ước số của một số nguyên một cách hiệu quả trong ngôn ngữ lập trình C.

Các kiểu dữ liệu trong C ( int - float - double - char ...)
Thuật toán tìm ước chung lớn nhất trong C/C++
Cấu trúc lệnh switch case trong C++ (có bài tập thực hành)
ComboBox - ListBox trong lập trình C# winforms
Random trong Python: Tạo số random ngẫu nhiên
Lệnh cin và cout trong C++
Cách khai báo biến trong PHP, các loại biến thường gặp
Download và cài đặt Vertrigo Server
Thẻ li trong HTML
Thẻ article trong HTML5
Cấu trúc HTML5: Cách tạo template HTML5 đầu tiên
Cách dùng thẻ img trong HTML và các thuộc tính của img
Thẻ a trong HTML và các thuộc tính của thẻ a thường dùng