Quảng cáo
1 câu trả lời 332
Tính tổng tất cả các “ước số” của số nguyên dương n bằng C / C++
Trong bài viết này chúng ta sẽ thực hiện chương trình tính tổng các ước số của số nguyên dương n bằng C / C++.
Một số được gọi là ước số của số nguyên A khi A chia hết cho số đó, hay nói cách khác thì mọi số mà A chia hết được gọi là ước số của A.
Mình sẽ thực hiện hai chương trình để tính tổng các ước số của số nguyên dương n bằng hai ngôn ngữ khác nhau là C và C++.
Tính tổng các ước số của số nguyên n bằng C
Ta cần một biến n là số nguyên dương cần tính ước số, n được nhận từ bàn phím và biến S là tổng các ước số của n.
Bài viết này được đăng tại [free tuts .net]
Sử dụng vòng lặp do..while để yêu cầu người dùng nhập vào số n lớn hơn 0, nếu n < 0 thì nhập lại.
Để tính tổng các ước số đầu tiên ta cần liệt kê các ước số của nó, ta sử dụng vòng lặp for lặp từ 1 đến <= n.
1
2
3
4
5
6
7
8
for(int i = 1; i <= n; i++)
{
if(n % i == 0)
{
printf("%4d", i);
S = S + i;
}
}
Tổng các ước số của n sẽ được tính và lưu vào biến S, sau khi tính xong chỉ cần hiển thị S ra màn hình bằng printf().
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#include<stdio.h>
int main()
{
int n;
long S = 0;
//sử dụng dowhile để yêu cầu người dùng nhập vào số lớn hơn 0
//nếu n < 0 thì yêu cầu nhập lại
do
{
printf("\nNhập vào số nguyên n lớn hơn 0: ");
scanf("%d", &n);
if(n <= 0)
{
printf("\n Số n phải lớn hơn 0, vui lòng nhập lại !");
}
}while(n <= 0);
//sử dụng vòng lặp for để tính tổng các ước số của n
printf("Các ước số của %d là: ",n);
for(int i = 1; i <= n; i++)
{
if(n % i == 0)
{
printf("%4d", i);
S = S + i;
}
}
printf("\nTổng các ước số của %d là: %ld", n, S);
printf("\n-----------------------------------------\n");
printf("Chương trình này được đăng tại Freetuts.net");
}
Kết quả:
Quảng cáo
Bạn cần hỏi gì?
Câu hỏi hot cùng chủ đề
-
Đã trả lời bởi chuyên gia
86391
