1. Bài tập cho số nguyên dương N, tính tổng các ước số nhỏ hơn chính nó

Bài tập cơ bản này ta có thể có nhiều hướng giải quyết khác nhau, như sử dụng vòng lặp for , sử dụng vòng lặp while, …trong ngôn ngữ lập trình C

Đầu vào sẽ là một biến nguyên biến nguyên dương N,  yêu cầu của bài toán là đưa ra ttính tổng các ước số nhỏ hơn chính nó.

2. Lời giải

Để giải được bài tập cho số nguyên dương N, tính tổng các ước số nhỏ hơn chính nó  bạn phải có kiến thức về toán học cơ bản, có kiến thức về lập trình C cơ bản, cách sử dụng vòng lặp và hàm ngôn ngữ lập trinh C.

Các bước thực hiện bài toán như sau:

Bước 1: Ta khai báo biến N để gán giá trị của N, khai báo biến int Sum=0 dùng để tính tổng các ước số của N nhỏ hơn N

Bước 2: Sử dụng hàm for để bắt đầu duyệt từ 1 đến N-1, mỗi lần i sẽ tăng lên 1

Bước 3: Sử dụng câu điều kiện if trong vòng for để kiểm tra từ phần tử N có chia hết cho phần tử i không, nếu có thì biến Sum sẽ cộng bằng i (giá trị i lúc này sẽ là một ước)

Bước 4: In biến Sum ra mà hình

Chương trình giải bài tập cho số nguyên dương N, tính tổng các ước số nhỏ hơn chính nó như sau:

#include<stdio.h>
int main()
{
    //khai bao bien N
    int N;
    //khau bao Sum
    int Sum=0;
    do
    {    // nhap du lieu gan vao bien N
        printf("\nNhap N = ");
        scanf("%d", &N);
        if(N <= 0)//neu N<=0 se hien thi cau lenh
        {
            printf("\n N phai > 0. Xin nhap lai !");
        }
    }while(N <= 0);//dieu kiên N > 0 neu N<=0 yeu cau nhap lai
    
    
    //vong lap for bat dau tu i = 1 và ket thuc khi i = N-1, moi lan lap i tang len 1
    for(int i = 1; i <=N-1; i++)
    {
        if(N%i==0)//kiem tra uoc cua N
        {
            Sum+=i;//tong cac uoc so cua N
        }
    }
    printf("Tong cac uoc so cua %d la: %d",N,Sum);
}

Ví dụ tôi nhập N=10

Kết quả:

Nhap N = 10
Tong cac uoc so cua 10 la: 8

3. Tổng kết

Để thực hiện giải bài tập cho số nguyên dương N, tính tổng các ước số nhỏ hơn chính nó bạn đọc cần phải có kiến thức cơ bản về ngôn ngữ lập trình C, bạn cần nắm vững cách nhập xuất căn bản, các cách sử dụng vòng lặp trong C và các phép toán học cơ bản .

Bài tập trên có thể giải bằng các khác là sử dụng vòng lặp while.

Chương trình như sau:

#include<stdio.h>
int main()
{
    //khai bao bien N
    int N;
    //khai bao bien Sum
    int Sum=0;
    do
    {    // nhap du lieu gan vao bien N
        printf("\nNhap N = ");
        scanf("%d", &N);
        if(N <= 0)//neu N<=0 se hien thi cau lenh
        {
            printf("\n N phai > 0. Xin nhap lai !");
        }
    }while(N <= 0);//dieu kiên N > 0 neu N<=0 yeu cau nhap lai
    
    int i=1;//i bat dau tu 1
    while(i<=N-1)//dieu kien dung khi i<=N-1
    {
        if(N%i==0)//kiem tra uoc cua N 
        {
            Sum+=i;//Tinh tong cac uoc so
        }
        i++; //moi lan lap i tang 1
    }    
    printf("tong cac uoc cua %d la: %d",N,Sum);
}

Ví dụ tôi nhập N=15

Kết quả:

Nhap N = 15
tong cac uoc cua 15 la: 9