Trang chủ Tin Học Lớp 10 c++ nha mn Một số nguyên dương được gọi là số đẹp khi tổng bình phương các chữ số của...
Câu hỏi :

c++ nha mn Một số nguyên dương được gọi là số đẹp khi tổng bình phương các chữ số của nó là một số nguyên tố. Ví dụ : số 12 là một số đẹp vì 12 + 22 = 5 là số nguyên tố. Yêu cầu: Cho số nguyên dương N, cho có bao nhiêu số đẹp nhỏ hơn hoặc bằng N. Dữ liệu vào: file FINENUM.INP gồm một dòng chứa số nguyên dương N (1 N 106) Dữ liệu ra: file FINENUM.OUT chứa duy nhất một số nguyên là số lượng số đẹp nhỏ hơn hoặc bằng N. mọi ng giúp với ạ, thanks

Lời giải 1 :

Đáp án+Giải thích các bước giải:

Để giải quyết vấn đề này, chúng ta có thể sử dụng một vòng lặp để tạo ra các số từ 1 đến N và kiểm tra xem mỗi số có phải là một số đẹp hay không.

Dưới đây là một cách giải thích thuật toán để giải quyết vấn đề này:

1. Đọc giá trị của N từ file FINENUM.INP.

2. Khởi tạo biến count = 0 để đếm số lượng số đẹp.

3. Sử dụng một vòng lặp từ i = 1 đến N:
   - Chuyển đổi số i thành một chuỗi kí tự để dễ dàng truy cập từng chữ số.
   - Khởi tạo biến sum = 0 để tính tổng bình phương các chữ số.
   - Sử dụng một vòng lặp từ j = 0 đến chiều dài của chuỗi số:
     + Chuyển đổi kí tự tại vị trí j thành một số nguyên và bình phương nó.
     + Cộng giá trị bình phương vào biến sum.
   - Kiểm tra xem giá trị sum có phải là số nguyên tố hay không bằng cách sử dụng một hàm kiểm tra số nguyên tố.
   - Nếu giá trị sum là số nguyên tố, tăng biến count lên 1.

4. Ghi giá trị của biến count vào file FINENUM.OUT.

Dưới đây là một ví dụ trong Python để minh họa thuật toán:
```python
def check_prime(num):
    if num < 2:
        return False
    for i in range(2, int(num**0.5) + 1):
        if num % i == 0:
            return False
    return True
with open("FINENUM.INP", "r") as file_in:
    N = int(file_in.readline())
count = 0
for i in range(1, N + 1):
    num_str = str(i)
    num_sum = 0
    for j in range(len(num_str)):
        digit = int(num_str[j])
        num_sum += digit * digit
    if check_prime(num_sum):
        count += 1
with open("FINENUM.OUT", "w") as file_out:
    file_out.write(str(count))
```
→Sau khi chạy chương trình, kết quả sẽ được ghi vào file FINENUM.OUT và có thể đọc được số lượng số đẹp nhỏ hơn hoặc bằng N.

 Tham khảo nhé

$#QN$

$#HD247$

Bạn có biết?

Tin học là một ngành khoa học chuyên nghiên cứu quá trình tự động hóa việc tổ chức, lưu trữ, xử lý và truyền dẫn thông tin của một hệ thống máy tính cụ thể hoặc trừu tượng. Tin học bao hàm tất cả các nghiên cứu và kỹ thuật có liên quan đến việc mô phỏng, biến đổi và tái tạo thông tin. Hãy tận dụng sức mạnh của tin học để giải quyết các vấn đề và sáng tạo ra những giải pháp mới!

Nguồn :

Wikipedia - Bách khoa toàn thư

Tâm sự lớp 10

Lớp 10 - Năm đầu tiên ở cấp trung học phổ thông, chúng ta sẽ có nhiều bạn bè mới đến từ những nơi khác nhau. Ngôi trường mới, xa nhà hơn, mở ra một thế giới mới với nhiều điều thú vị. Hãy mở lòng đón nhận và tận hưởng những trải nghiệm mới!

Nguồn :

sưu tập

Copyright © 2024 Giai BT SGK