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

Kiểm tra số nguyên tố và số hoàn hảo trong C

Trong toán học và lập trình, các loại số đặc biệt như số nguyên tố và số hoàn hảo thường được quan tâm. Trong bài tập này, mình sẽ viết một chương trình trong ngôn ngữ lập trình C để kiểm tra xem một số có phải là số nguyên tố hay số hoàn hảo không.

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 kiểm tra số nguyên tố hay số hoàn hảo không trong C

Kiểm tra số nguyên tố

  • Một số nguyên dương được gọi là số nguyên tố nếu nó chỉ có hai ước số dương: 1 và chính nó.
  • Để kiểm tra xem một số có phải là số nguyên tố hay không, mình chỉ cần kiểm tra xem số đó có chia hết cho bất kỳ số nguyên nào khác 1 và chính nó không.

Kiểm tra số hoàn hảo

  • Một số nguyên dương được gọi là số hoàn hảo nếu tổng các ước số của nó (không kể chính nó) bằng chính nó.
  • Để kiểm tra xem một số có phải là số hoàn hảo hay không, mình cần tính tổng các ước số của số đó và so sánh với chính số đó.

Hãy xem cách giải sau

Dưới đây là một ví dụ về cách cài đặt kiểm tra số nguyên tố và số hoàn hảo trong ngôn ngữ lập trình C:

#include <stdio.h>

// Hàm kiểm tra số nguyên tố
int isPrime(int num) {
    if (num <= 1) return 0; // Không phải số nguyên tố nếu nhỏ hơn hoặc bằng 1
    for (int i = 2; i * i <= num; i++) {
        if (num % i == 0) return 0; // Không phải số nguyên tố nếu chia hết cho số nào đó
    }
    return 1; // Là số nguyên tố
}

// Hàm kiểm tra số hoàn hảo
int isPerfect(int num) {
    int sum = 1; // Tổng ước số, bắt đầu từ 1 vì 1 luôn là ước số của mọi số
    for (int i = 2; i * i <= num; i++) {
        if (num % i == 0) {
            sum += i;
            if (i * i != num) {
                sum += num / i;
            }
        }
    }
    if (sum == num && num != 1) return 1; // Là số hoàn hảo
    return 0; // Không phải số hoàn hảo
}

int main() {
    int num;
    
    // Nhập số từ người dùng
    printf("Nhập một số nguyên dương: ");
    scanf("%d", &num);

    // Kiểm tra và in kết quả
    if (isPrime(num)) {
        printf("%d là số nguyên tố.\n", num);
    } else {
        printf("%d không phải là số nguyên tố.\n", num);
    }

    if (isPerfect(num)) {
        printf("%d là số hoàn hảo.\n", num);
    } else {
        printf("%d không phải là số hoàn hảo.\n", num);
    }

    return 0;
}

Kết quả

Bài viết này được đăng tại [free tuts .net]

Khi chạy chương trình và nhập một số nguyên dương từ người dùng, chương trình sẽ kiểm tra xem số đó có phải là số nguyên tố và số hoàn hảo hay không và hiển thị kết quả tương ứng.

z5252126793032 03060027d21bb05bd74d5b6102ed1524 jpgz5252129914965 635f196a22c0af38f68a412a04549a8d jpg

Trong bài tập này, mình đã viết một chương trình trong ngôn ngữ lập trình C để kiểm tra xem một số có phải là số nguyên tố hay số hoàn hảo không. Điều này giúp mình hiểu rõ hơn về các loại số đặc biệt và làm quen với cách cài đặt các thuật toán kiểm tra số nguyên tố và số hoàn hảo.

Cùng chuyên mục:

Các hàm xử lý mảng đa chiều (array.h) trong C/C++

Các hàm xử lý mảng đa chiều (array.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ý 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++

Top