Bài 1. Số đẹp Một số tự nhiên N càng nhiều ước số càng đẹp, em hãy tính độ đẹp của số tự nhiên N bất kì. Dữ liệu: Vào từ file SODEP.INP duy nhất một số tự nhiên N(1<= 𝑁 <=1014) Kết quả: Ghi ra file SO...

ADS
Trả lời câu hỏi của Gia Bao Hoang

Làm sao để có câu trả lời hay nhất?

  • Luôn có GIẢI THÍCH các bước giải
  • Không copy câu trả lời của Timi
  • Không sao chép trên mạng
  • Không spam câu trả lời để nhận điểm
  • Spam sẽ bị khóa tài khoản
ADS
CÂU TRẢ LỜI
avatar
Timi

06/04/2025

Trợ lý học tập AI - Câu trả lời này chỉ mang tính tham khảo
Để tính độ đẹp của một số tự nhiên (tức là số lượng ước số của ), bạn có thể làm theo các bước sau: 1. **Đọc số ** từ file `SODEP.INP`. 2. **Tính số ước** của : - Khởi tạo một biến đếm ước số. - Lặp từ 1 đến : - Nếu là ước của (tức là ), thì: - Tăng biến đếm lên 1. - Nếu khác , thì cũng tăng biến đếm lên 1 (điều này để tính cả ước số đối). 3. **Ghi kết quả** vào file `SODEP.OUT`. Dưới đây là một đoạn mã Python minh họa cho cách thực hiện: ```python import math # Đọc số N từ file SODEP.INP with open('SODEP.INP', 'r') as file: N = int(file.read().strip()) # Tính số ước của N count = 0 for i in range(1, int(math.sqrt(N)) + 1): if N % i == 0: count += 1 # i là ước if i != N // i: count += 1 # N/i cũng là ước # Ghi kết quả vào file SODEP.OUT with open('SODEP.OUT', 'w') as file: file.write(str(count)) ``` ### Giải thích: - Đoạn mã trên sẽ đọc số từ file, tính số ước của nó bằng cách lặp qua các số từ 1 đến , và ghi kết quả vào file. - Việc kiểm tra đến giúp giảm thiểu số lần lặp, từ đó tối ưu hóa thời gian tính toán, đặc biệt khi có thể lên đến .
Hãy giúp mọi người biết câu trả lời này thế nào?
0/5 (0 đánh giá)
thumb up 0
thumb down
1 bình luận
Bình luận
avatar

Gia Bao Hoang

06/04/2025

Timi LÀM bằng scratch


Dưới đây là chương trình Python để giải bài toán "Số đẹp" – tức là tính số lượng ước tự nhiên của một số nguyên dương :


💡 Ý tưởng:

Với mỗi số  từ 1 đến , nếu  chia hết , thì ta có một cặp ước .

Nếu  (tức ) thì chỉ cộng 1, còn nếu khác thì cộng 2.


✅ Code (Python):

import math

# Đọc dữ liệu
with open("SODEP.INP", "r") as f:
    N = int(f.readline())

# Tính số lượng ước
count = 0
sqrt_N = int(math.isqrt(N))
for i in range(1, sqrt_N + 1):
    if N % i == 0:
        if i == N // i:
            count += 1
        else:
            count += 2

# Ghi kết quả ra file
with open("SODEP.OUT", "w") as f:
    f.write(str(count))

📂 File Input/Output:

SODEP.INP: chứa 1 dòng duy nhất là số 

SODEP.OUT: ghi ra số lượng ước của 


🧪 Ví dụ:

SODEP.INP

12

SODEP.OUT

6

Vì 12 có các ước: 1, 2, 3, 4, 6, 12

Hãy giúp mọi người biết câu trả lời này thế nào?
0/5 (0 đánh giá)
thumb up 0
thumb down
0 bình luận
Bình luận
ADS

Nếu bạn muốn hỏi bài tập

Các câu hỏi của bạn luôn được giải đáp dưới 10 phút

Ảnh ads

CÂU HỎI LIÊN QUAN

logo footer
FQA.vn Nền tảng kết nối cộng đồng hỗ trợ giải bài tập học sinh trong khối K12. Sản phẩm được phát triển bởi CÔNG TY TNHH CÔNG NGHỆ GIA ĐÌNH (FTECH CO., LTD)
Điện thoại: 1900636019 Email: info@fqa.vn
Location Địa chỉ: Số 21 Ngõ Giếng, Phố Đông Các, Phường Ô Chợ Dừa, Quận Đống Đa, Thành phố Hà Nội, Việt Nam.
Tải ứng dụng FQA
app store ch play
Người chịu trách nhiệm quản lý nội dung: Nguyễn Tuấn Quang Giấy phép thiết lập MXH số 07/GP-BTTTT do Bộ Thông tin và Truyền thông cấp ngày 05/01/2024
Copyright © 2023 fqa.vn All Rights Reserved
gift-box
survey
survey
Đặt câu hỏi