Bài tập thực hành c++ có lời giải

Ở bài này, chúng ta sẽ cùng nhau ôn luyện làm bài và phân tích chi tiết cách giải quyết các bài toán trong lập trình qua ví dụ cụ thể.

Show

    Kiểm tra số n có phải số nguyên tố hay không.

    Số nguyên tố là số nguyên dương có duy nhất 2 ước phân biệt là 1 và chính nó. Lưu ý: Số 1 không phải số nguyên tố do chỉ có 1 ước.

    • Nếu n < 2, kết luận n không phải số nguyên tố. Sử dụng if để kiểm tra n.
    • Đếm số ước của n trong đoạn từ `

    include <stdio.h>

    int main() {

    // Add your code in here:  
    // Fixed Do not edit anything here.  
    printf("\nOUTPUT:\n");  
    // Write your output here:  
    return 0;  
    
    }
    1 đến căn bậc hai của `n` (sử dụng  

    include <stdio.h>

    int main() {

    // Add your code in here:  
    // Fixed Do not edit anything here.  
    printf("\nOUTPUT:\n");  
    // Write your output here:  
    return 0;  
    
    }
    3). Nếu `n` không có ước nào trong đoạn từ  

    include <stdio.h>

    int main() {

    // Add your code in here:  
    // Fixed Do not edit anything here.  
    printf("\nOUTPUT:\n");  
    // Write your output here:  
    return 0;  
    
    }
    1 đến căn bậc hai của `n` thì nó là số nguyên tố (sử dụng `if` để kiểm tra). Ngược lại thì không phải.
    
    ### 
    
    Nếu bạn để ý thì một số nguyên 
    

    include <stdio.h>

    int main() {

    // Add your code in here:
    // Fixed Do not edit anything here.
    printf("\nOUTPUT:\n");
    // Write your output here:
    return 0;
    
    }
    
    0 bất kỳ sẽ luôn có số ước ở nửa đầu căn bậc 2 của nó bằng số ước ở nửa sau căn bậc 2 của nó. Cụ thể, các ước sẽ phân bố thành 2 miền từ 
    

    include <stdio.h>

    int main() {

    // Add your code in here:
    // Fixed Do not edit anything here.
    printf("\nOUTPUT:\n");
    // Write your output here:
    return 0;
    
    }
    
    1 và từ 
    

    include <stdio.h>

    int main() {

    // Add your code in here:
    // Fixed Do not edit anything here.
    printf("\nOUTPUT:\n");
    // Write your output here:
    return 0;
    
    }
    
    2.
    
    Phân tích cụ thể:
    
    Với số 12, ta có # include <stdio.h> int main() { // Add your code in here: // Fixed Do not edit anything here. printf("\nOUTPUT:\n"); // Write your output here: return 0; } 3 Đoạn 2 → 3.464 có ước bằng 2, tương ứng đoạn 3.464 → 12 có ước bằng 6\. Đoạn 2 → 3.464 có ước bằng 3, tương ứng đoạn 3.464 → 12 có ước bằng 4\. Trong đoạn 2 → 3.464 số 12 chia hết cho 2 số 2, 3 → 12 không phải là số nguyên tố.
    Với số 9, ta có # include <stdio.h> int main() { // Add your code in here: // Fixed Do not edit anything here. printf("\nOUTPUT:\n"); // Write your output here: return 0; } 4 Đoạn 2 → 3 có ước 3, tương ứng đoạn 3 → 9 có ước 3\. Trong đoạn 2 → 3 số 9 chia hết cho 1 số 3 → 9 không phải là số nguyên tố.
    Với số 7, ta có # include <stdio.h> int main() { // Add your code in here: // Fixed Do not edit anything here. printf("\nOUTPUT:\n"); // Write your output here: return 0; } 5 Trong đoạn từ 2 → 2.646 không có số nguyên nào mà 7 chia hết → 7 là số nguyên tố.
    ### Qua phân tích bên trên chúng ta có thể nhận thấy chương trình này cần kết hợp nhiều thứ đã học lại từ trước đến này bao gồm:
    • Thư viện `
    # include <stdio.h> int main() { // Add your code in here: // Fixed Do not edit anything here. printf("\nOUTPUT:\n"); // Write your output here: return 0; }
    6 cụ thể là hàm
    
    # include <stdio.h>  
    int main() {  
        // Add your code in here:  
        // Fixed Do not edit anything here.  
        printf("\nOUTPUT:\n");  
        // Write your output here:  
        return 0;  
    }  
    7 để tính căn bậc 2.

    • if để kiểm tra một số điều kiện.
    • `

    include <stdio.h>

    int main() {

    // Add your code in here:  
    // Fixed Do not edit anything here.  
    printf("\nOUTPUT:\n");  
    // Write your output here:  
    return 0;  
    
    }
    3 dùng để duyệt từ  

    include <stdio.h>

    int main() {

    // Add your code in here:  
    // Fixed Do not edit anything here.  
    printf("\nOUTPUT:\n");  
    // Write your output here:  
    return 0;  
    
    }
    1 đến `n` để đếm số ước của `n`.
    
    Code hoàn chỉnh:
    
    1

    include <stdio.h>

    2

    include <math.h>

    3 4 int main() { 5 6 int n; 7 8 printf("Enter n: "); 9 scanf("%d", &n); 10 11 if (n < 2) { 12 printf("n is not a prime number.\n"); 13 return 0; 14 } 15 16 int check = 1; 17 for (int i = 2; i <= sqrt(n); i++) { 18 if (n % i == 0) { 19 printf("n is not a prime number.\n"); 20 check = 0; 21 break; 22 } 23 } 24 25 if (check) { 26 printf("n a prime number.\n"); 27 } 28 }

    
    Enter n: 1 n is not a prime number.
    
    Enter n: 11 n a prime number.
    
    Enter n: 12 n is not a prime number.
    

    include <stdio.h>

    int main() {

    // Add your code in here:
    // Fixed Do not edit anything here.
    printf("\nOUTPUT:\n");
    // Write your output here:
    return 0;
    
    }
    
    3 - đây là từ khóa dùng để kết thúc một hàm xử lý, khi gặp từ khóa 
    

    include <stdio.h>

    int main() {

    // Add your code in here:
    // Fixed Do not edit anything here.
    printf("\nOUTPUT:\n");
    // Write your output here:
    return 0;
    
    }
    
    3 thì chương trình sẽ không chạy tiếp các dòng mã bên dưới từ 
    

    include <stdio.h>

    int main() {

    // Add your code in here:
    // Fixed Do not edit anything here.
    printf("\nOUTPUT:\n");
    // Write your output here:
    return 0;
    
    }
    
    3 nữa. Trong ví dụ trên, khi nhập `n < 2` thì chương trình sẽ chạy vào câu lệnh `if` (line 11) và thực hiện lệnh 
    

    include <stdio.h>

    int main() {

    // Add your code in here:
    // Fixed Do not edit anything here.
    printf("\nOUTPUT:\n");
    // Write your output here:
    return 0;
    
    }
    
    8 (line 13) - lúc này chương trình sẽ kết thúc và những dòng mã từ line 15 → line 27 sẽ không được thực hiện.
    

    include <stdio.h>

    int main() {

    // Add your code in here:
    // Fixed Do not edit anything here.
    printf("\nOUTPUT:\n");
    // Write your output here:
    return 0;
    
    }
    
    9 - tại sao lại dùng 
    

    include <stdio.h>

    int main() {

    // Add your code in here:
    // Fixed Do not edit anything here.
    printf("\nOUTPUT:\n");
    // Write your output here:
    return 0;
    
    }
    
    9 tại đây? Vì trong khoảng từ 
    

    include <stdio.h>

    int main() {

    // Add your code in here:
    // Fixed Do not edit anything here.
    printf("\nOUTPUT:\n");
    // Write your output here:
    return 0;
    
    }
    
    1 có thể có rất nhiều ước của `n`, chúng ra chỉ cần tìm thấy 1 ước đầu tiên là kết luận được `n`3 mà không cần chạy hết vòng lặp (dư thừa không cần thiết). Bạn có thể đọc lại về 
    

    include <stdio.h>

    int main() {

    // Add your code in here:
    // Fixed Do not edit anything here.
    printf("\nOUTPUT:\n");
    // Write your output here:
    return 0;
    
    } `

    9 tại đây.

    Nhập một số nguyên n từ bàn phím. Tính tổng tất cả các n`9 trong khoảng từ 0 cho đến bằng số nguyên `n.