Bài tập  /  Bài đang cần trả lời

Cho số nguyên dương N. Hãy đếm số lượng các ước dương của N

Bài 1. Đếm ước
Cho số nguyên dương N. Hãy đếm số lượng các ước dương của N.
Dữ liệu: Vào từ tệp văn bản COUNTOFDIVISORS.INP gồm một dòng chứa số nguyên N.
Kết quả: Ghi ra tệp văn bản COUNTOFDIVISORS.OUT số lượng ước dương của N.
Ví dụ:
COUNTOFDIVISORS.INPCOUNTOFDIVISORS.OUTGiải thích
646 có các ước dương: 1, 2, 3, 6
 Số lượng các ước dương là 4.
Ràng buộc:
 Có 40% số test ứng với 40% số điểm của bài có 1 ≤ N ≤ 103.
 Có 30% số test ứng với 30% số điểm của bài có 103 ≤ N ≤ 106.
 Có 30% số test ứng với 30% số điểm của bài có 106 ≤ N ≤ 1012.
Bài 2. Khảo sát giá
Trong dịp cuối năm 2020, một đội khảo sát giá ở tỉnh Quảng Ninh đã tiến hành khảo sát
giá bán của N (1≤ N ≤ 26) mặt hàng đang được bán tại nhiều cửa hàng trên toàn tỉnh.
Tên của mỗi mặt hàng được đặt bằng một chữ cái in hoa thuộc tập chữ cái từ ‘A’ đến ‘Z’.
Giá bán của mỗi mặt hàng là một số nguyên từ 1 đến 9.
Để kích thích tiêu dùng, đội khảo sát cần đưa ra cho khách hàng thông tin giá bán thấp
nhất của từng mặt hàng được bán trên địa bàn.
Yêu cầu: Bạn hãy giúp đội khảo sát đưa ra giá bán thấp nhất của từng mặt hàng đang được bán
tại các cửa hàng và tổng chi phí để mua các mặt hàng với giá thấp nhất đó.
Dữ liệu: Vào từ tệp văn bản SURVEYS.INP gồm:
 Dòng thứ nhất ghi số nguyên dương N (1 ≤ N ≤ 26) là số lượng các mặt hàng được khảo
sát giá bán.
 N dòng tiếp theo mỗi dòng ghi một xâu kí tự (số lượng kí tự thuộc phạm vi từ 2 đến 255)
mô tả thông tin về tên mặt hàng và các giá bán của mặt hàng đó tại một số cửa hàng khác
nhau. Ví dụ xâu A572 nghĩa là tên mặt hàng là A, giá bán tại các cửa hàng lần lượt là
5,7,2. Dữ liệu đảm bảo tên của mặt hàng là khác nhau.
Kết quả: Ghi ra tệp văn bản SURVEYS.OUT gồm N+1 dòng
Trang 2
 N dòng đầu tiên mỗi dòng gồm tên mặt hàng và giá bán thấp nhất của mặt hàng đó (các
mặt hàng được đưa ra tương ứng với thứ tự trong tệp dữ liệu vào, tên mặt hàng và giá được
ghi liền nhau)
 Dòng cuối là tổng chi phí để mua tất cả các mặt hàng với giá bán thấp nhất (mỗi loại mặt
hàng chỉ được tính mua một lần với giá thấp nhất)
Ví dụ:
SURVEYS.INPSURVEYS.OUTGiải thích
3
A86722
D765
B2A2
D5
B2
9Có 3 mặt hàng
 Chuỗi kí tự A86722 mô tả tên mặt hàng là A, các
giá bán 8,6,7,2,2 => giá thấp nhất là 2
 Chuỗi kí tự D765 mô tả tên mặt hàng là D, các giá
bán 7,6,5 => giá thấp nhất là 5
 Chuỗi kí tự B2 mô tả tên mặt hàng là B, có 1 giá
bán là 2 => giá bán thấp nhất là 2
=> Tổng chi phí để mua 3 mặt hàng với giá thấp nhất
là 2+5+2 =9
Ràng buộc:
 Có 20% số test ứng với 20% số điểm thỏa mãn N=1, tức là chỉ khảo sát 1 mặt hàng
 Có 30% số test ứng với 30% số điểm thỏa mãn mỗi mặt hàng chỉ có 1 giá, tức là chỉ có 1
cửa hàng bán mặt hàng đó.
 Có 50% số test ứng với 50% số điểm không có ràng buộc gì thêm
Bài 3. Tích của tổng trái và tổng phải
Cho dãy số nguyên A1, A2, …, AN. Hãy thực hiện nhiệm vụ sau: Chia dãy thành hai phần
trái và phải, trong đó phần trái gồm N/2 phần tử đầu tiên và phần phải gồm các phần tử còn lại.
Yêu cầu: Tính tổng các phần tử của mỗi phần, cuối cùng tính và in ra tích hai tổng tìm được.
Dữ liệu: Vào từ tệp văn bản MULTIPLYLR.INP gồm 2 dòng:
 Dòng đầu chứa số nguyên dương N.
 Dòng thứ hai chứa N số nguyên A1, A2, ... AN (1 ≤ Ai ≤ 100). Các số được viết cách nhau
bởi dấu cách.
Kết quả: Ghi ra tệp văn bản MULTIPLYLR.OUT gồm một dòng chứa kết quả của bài toán.
Ví dụ:
MULTIPLYLR.INPMULTIPLYLR.OUTGiải thích
4
1 2 3 421Tổng trái = 1 + 2 = 3
Tổng phải = 3 + 4 = 7
 Tích = 3.7 = 21
Ràng buộc:
 Có 50% số test ứng với 50% số điểm của bài có 1 ≤ N ≤ 103.
 Có 30% số test ứng với 30% số điểm của bài có 103 ≤ N ≤ 105.
 Có 20% số test ứng với 20% số điểm của bài có 105 ≤ N ≤ 106.
 
2 trả lời
Hỏi chi tiết
294
0
0
Nguyễn Minh Thạch
01/06/2023 17:43:50
+5đ tặng
n=int(input("Nhập số n:"))
u=0
for k in range(1,n+1):
    if n%k==0:
        u=u+1
print("Có",u,"ước")

Mở khóa để xem toàn bộ nội dung trả lời

(?)
Bạn đã đạt đến giới hạn của mình. Bằng cách Đăng ký tài khoản, bạn có thể xem toàn bộ nội dung trả lời
Cải thiện điểm số của bạn bằng cách đăng ký tài khoản Lazi.
Xem toàn bộ các câu trả lời, chat trực tiếp 1:1 với đội ngũ Gia sư Lazi bằng cách Đăng ký tài khoản ngay bây giờ
Tôi đã có tài khoản? Đăng nhập
0
0
Dannz
07/06/2023 21:28:38
Bài 1
var
  n, i, count: longint;
begin
  assign(input, 'COUNTOFDIVISORS.INP'); reset(input);
  assign(output, 'COUNTOFDIVISORS.OUT'); rewrite(output);
  readln(n);
  count := 0;
  for i := 1 to trunc(sqrt(n)) do
    if n mod i = 0 then
      if i = n div i then
        inc(count)
      else
        inc(count, 2);
  writeln(count);
  close(input); close(output);
end.
 
 

Bạn hỏi - Lazi trả lời

Bạn muốn biết điều gì?

GỬI CÂU HỎI
Học tập không giới hạn cùng học sinh cả nước và AI, sôi động, tích cực, trải nghiệm
Bài tập liên quan
Bài tập Lập trình Lớp 9 mới nhất

Hôm nay bạn thế nào? Hãy nhấp vào một lựa chọn, nếu may mắn bạn sẽ được tặng 50.000 xu từ Lazi

Vui Buồn Bình thường

Học ngoại ngữ với Flashcard

×
Gia sư Lazi Gia sư
×
Trợ lý ảo Trợ lý ảo