SIMPLE
STRING
ARRAY
SORTING
POINTER
CALCULATION
NUMBER
OTHER
C
BÀI TẬP C
CÁC CHỦ ĐỀ
BÀI MỚI NHẤT
MỚI CẬP NHẬT

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.

test php

banquyen png
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ả:

z5271804850547 4ca2cbf43892da22d83e53c0b165e2bf jpg

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ùng chuyên mục:

Các hàm xử lý ngày tháng (datetime.h) trong C/C++

Các hàm xử lý ngày tháng (datetime.h) trong C/C++

Các hàm xử lý số thực (float.h) trong C/C++

Các hàm xử lý số thực (float.h) trong C/C++

Các hàm xử lý số nguyên lớn (bigint.h) trong C/C++

Các hàm xử lý số nguyên lớn (bigint.h) trong C/C++

Các hàm xử lý thời gian (time.h) trong C

Các hàm xử lý thời gian (time.h) trong C

Các hàm xử lý chuỗi (string.h) trong C/C++

Các hàm xử lý chuỗi (string.h) trong C/C++

Thread Pools và Parallel Algorithms trong C++

Thread Pools và Parallel Algorithms trong C++

Tạo và quản lý các Multithreading trong C++

Tạo và quản lý các Multithreading trong C++

Xử lý ngoại lệ khi làm việc với Memory Allocation trong C++

Xử lý ngoại lệ khi làm việc với Memory Allocation trong C++

Try, Catch, và Throw của Exception Handling trong C++

Try, Catch, và Throw của Exception Handling trong C++

Cách sử dụng Lambda Expressions trong C++

Cách sử dụng Lambda Expressions trong C++

Sử dụng weak_ptr trong C++

Sử dụng weak_ptr trong C++

Sử dụng shared_ptr trong C++

Sử dụng shared_ptr trong C++

Sử dụng unique_ptr trong C++

Sử dụng unique_ptr trong C++

Tổng quan về Smart Pointers trong C++

Tổng quan về Smart Pointers trong C++

Sử dụng Iterators trong STL của C++

Sử dụng Iterators trong STL của C++

[Iterator] Sử dụng Vector trong C++

[Iterator] Sử dụng Vector trong C++

[Iterator] Sử dụng trong List trong C++

[Iterator] Sử dụng trong List trong C++

[STL] Sử dụng Vector trong C++

[STL] Sử dụng Vector trong C++

Tổng quan về Iterators trong C++

Tổng quan về Iterators trong C++

[STL] Các hàm thường dùng của lớp Vector trong C++

[STL] Các hàm thường dùng của lớp Vector trong C++

Top