Chủ đề F. Bài 10. Chương trình con và thư viện các chương trình con có sẵn

Chương trình con và thư viện các chương trình con có sẵn sách bài tập Tin Học lớp 10Cánh Diều, mời các em tham khảo cùng Bumbii.

Chủ đề F. Giải quyết vấn đề với sự trợ giúp của máy tính. Bài 10. Chương trình con và thư viện các chương trình con có sẵn.

Câu F45

Các ước thực sự. Ước thực sự của số nguyên dương n là các ước nguyên dương khác l và n. Xây dựng hàm divisors với tham số là số nguyên dương n và trả về số lượng ước thực sự của n, (0 ≤ n ≤ 1012). Viết chương trình nhập vào số nguyên dương n từ bàn phím, (0 ≤ n ≤ 1012), sử dụng hàm đã xây dựng đưa ra màn hình số ước thực sự của n.

Ví dụ:

InputOutput
284

Gợi ý:

Điều kiện để số nguyên dương p là ước thực sự của n là: l < p < n và n % p == 0.

Nếu p là ước thực sự của n thì q = n//p cũng là ước thực sự của n. Đặc biệt, p == q khi và chỉ khi p2 = n

Như vậy ta chỉ cần tìm các p thoả mãn điều kiện (với 0 ≤ n ≤ 1012):

Đáp án:

Tham khảo chương trình sau:

def divisors(n):
   res = 0
   k = int (n**0.5 + 0.5)
   for i in range (2, k+1):
       if n%i == 0: res = res + 2
       if i*i == n: res = res - 1
   return res
m = int(input())
print(divisors(m))

Câu F46

Số nguyên tố. Số nguyên tố là số nguyên lớn hơn 1, chỉ chia hết cho 1 và chính nó. Xây dựng hàm prime kiểm tra số nguyên không âm n (0 ≤ n ≤ 1012) có phải là số nguyên tố hay không, trả về True nếu n là số nguyên tố và False trong trường hợp ngược lại. Viết chương trình nhập số nguyên không âm n (0 ≤ n ≤ 1012) vào từ bàn phím, sử dụng hàm đã xây dựng đưa ra màn hình kết quả kiểm tra n có phải là số nguyên tố hay không.

Ví dụ:

InputOutput
31True

Gợi ý:

Số 2 là số nguyên tố.

Số 0, 1 và các số chẵn lớn hơn 2 không phải là số nguyên tố.

Các số lẻ lớn hơn 2: n là hợp số khi và chỉ khi tồn tại một ước

(với 0 ≤ n ≤ 1012). Ở trường hợp này chỉ cần kiểm tra có tồn tại p hay không.

Đáp án:

Tham khảo chương trình sau:

def prime(n):
   if n == 2: return True
   if n < 2 or n%2 == 0: return False
   k = int(n**0.5 + 0.5)
   for i in range(3,k + 1,2):
       if n%i == 0: return False
   return True
m = int(input())
print(prime(m))

Câu F47

Tổng chữ số. Xây dựng hàm sum_digits tính tổng các chữ số của số nguyên dương n. Viết chương trình nhập số nguyên không âm n từ bản phím, sử dụng hàm đã xây dựng đưa ra màn hình tổng các chữ số của n.

Ví dụ:

InputOutput
482519

Gợi ý:

Hàm được xây dựng dựa trên cơ sở hai phép xử lí:

– Trích chữ số hàng đơn vị của n: n % 10.

– Xoá chữ số hàng đơn vị của n: n // 10.

Việc xử lí kết thúc khi có n bằng 0.

Đáp án:

Tham khảo chương trình sau:

def sum_digits(n):
   t = 0
   while n > 0:
      t += n%10
      n //= 10
   return t
n = int(input())
print(sum_digits(n))

Câu F48

Cấp số cộng. Ba số a, b, c theo trình tự tạo thành một cấp số cộng nếu tồn tại d để b = a + d và c = b + d. Hãy xây dựng hàm kiểm tra ba số a, b, c có tạo thành một cấp số cộng hay không và trả về giá trị True hoặc False tương ứng. Viết chương trình nhập từ bàn phím ba số thực trên cùng một dòng, các số cách nhau ít nhất một dấu cách. Sử dụng hàm đã tạo để kiểm tra ba số này có tạo thành cấp số cộng hay không (nếu cần thiết có thể đổi chỗ cho nhau) và đưa ra thông báo “Yes” hoặc “No” tương ứng.

Gợi ý: Nên sử dụng các hàm max, min của hệ thống.

Ví dụ:

InputOutput
15 5 10Yes

Gợi ý:

Điều kiện để ba số a, b, c theo trình tự đã nêu tạo thành một cấp số cộng là b – a == c – b. Với ba số x, y, z muốn kiểm tra xem có thể đổi chỗ để được ba số hạng liên tiếp của một cấp số cộng hay không, ta có thể sắp xếp chúng theo thứ tự tăng dần và sau đó kiểm tra điều kiện tạo cấp số cộng. Cách viết ngắn gọn nhất để sắp xếp ba số theo thứ tự tăng dần là:

x, y, z = min(x,y,z), x + y + z – min(x,y,z) – max(x,y,z), max(x,y,z)

Đáp án:

Tham khảo chương trình sau:

def ar_prog(a,b,c): return (b - a) == (c - b)
x, y, z = map(float,input().split())
sum = x + y + z
x, y, z = (min(x,y,z), sum - min(x,y,z) - max(x,y,z), max(x,y,z))
if ar_prog(x,y,z): print('Yes')
else: print('No')

Câu F49

Cấp số nhân. Ba số a, b, c theo trình tự tạo thành một cấp số nhân nếu tồn tại q để b = aq và c = bq. Hãy xây dựng hàm kiểm tra ba số a, b, c có tạo thành một cấp số nhân hay không và trả về giá trị True hoặc False tương ứng. Viết chương trình nhập từ bàn phím ba số thực trên cùng một dòng, các số cách nhau ít nhất một dấu cách, sử dụng hàm đã nhập để kiểm tra ba số này có tạo thành cấp số nhân hay không (nếu cần thiết có thể đổi chỗ cho nhau) và đưa ra thông báo “Yes” hoặc “No” tương ứng.

Ví dụ:

InputOutput
34 4 12No

Gợi ý:

Điều kiện để ba số a, b, c theo trình tự đã nêu tạo thành một cấp số nhân là bb == ac.

Đáp án:

Tham khảo chương trình sau:

def g_prog(a,b,c): return a*a == b*c or b*b == a*c or c*c == a*b
x, y, z = map(float,input().split())
if g_prog(x,y,z): print('Yes')
else: print('No')

Xem thêm các bài khác tại Giải Sách bài tập Tin học Lớp 10 – Cánh Diều

Thông tin liên hệ & mạng xã hội:
Website: https://bumbii.com/
Facebook: https://www.facebook.com/bumbiiapp
Pinterest: https://www.pinterest.com/bumbiitech

0 0 đánh giá
Article Rating
Theo dõi
Thông báo của
guest

0 Bình luận
Phản hồi nội tuyến
Xem tất cả bình luận
0
Cùng chia sẻ bình luận của bạn nào!x