Nguồn đề bài: http://vn.spoj.com/problems/COUNTCBG/
Nội dung bài viết
1. Đề bài COUNTCBG spoj
Với 1 số tự nhiên N(1<= N <= 10^9) ta có thể phân tích nó thành tổng của một số số tự nhiên liên tiếp( tất nhiên những số này phải nhỏ hơn N). Ví dụ với N = 5 ta có duy nhất 1 cách phân tích là 5 = 2+3. Bài toán đặt ra là cho số tự nhiên N, hãy cho biết có bao nhiêu cách phân tích số tự nhiên N thành tổng của các số tự nhiên liên tiếp.
Input
Gồm nhiều dòng, mỗi dòng chứa một số nguyên N. (Giới hạn : số dòng <= 100)
Output
Mỗi dòng ghi một số nguyên là số cách phân tích số N đọc được ở dòng tương ứng trong input.
Ví dụ
Input:
12
5
4
13
45
100
234
3
175
Output:
1
1
0
1
5
2
5
1
5
2. code tham khảo BCTICH và COUNTCBG:
a. Code COUNTCBG SPOJ
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | var n,kq,i:longint; f:text; begin assign(f,''); reset(f); while not eof(f) do begin kq:=0; readln(f,n); for i:=2 to trunc(sqrt(2*n)) do if 2*n mod i = 0 then if (i-1 + (2*n div i)) mod 2=0 then inc(kq); writeln(kq); end; close(f); end. |
b. Code BCTICH PTIT
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | var n,kq,i,j,tt,tam:longint; f:text; begin assign(f,''); reset(f); readln(f,tt); for j:=1 to tt do begin kq:=0; readln(f,tam,n); for i:=2 to trunc(sqrt(2*n)) do if 2*n mod i = 0 then if (i-1 + (2*n div i)) mod 2=0 then inc(kq); writeln(tam,' ',kq); end; close(f); end. |
Bài viết liên quan
- BCMULONE spoj PTIT -Nhân 1
- P134SUMB spoj PTIT – SUM4 B – Lát sàn
- BCTEST14 spoj PTIT – Ốc sên
- Ước chung lớn nhất, bội chung nhỏ nhất (Cơ bản)
- BCCOM spoj PTIT – Số nén tối giản
- BCACM11A spoj PTIT – Phương án khuyến mãi
- P151PROA spoj , CF #292 (Div. 2) C. Drazil and Factorial
- PTIT136C spoj – Tìm dãy số
- BCSEQ1 PTIT spoj – Đoạn số có tổng bằng nhau
- P167PROE spoj PTIT – ROUND 7E – Phương trình
code bị lỗi rồi
Hi bạn, code bị lỗi là lỗi như thế nào vậy bạn, mình vừa submit lại thì vẫn 100Đ mà bạn?

Bạn lưu ý là nộp bài tại đây nhé http://vn.spoj.com/problems/COUNTCBG/ và code bài COUNTCBG và BCTICH PTIT là khác cấu trúc đọc file nhé. bạn kiểm tra lại giúp mình nhé.
ad cho em xin ý tưởng bài này được không ạ?
Đây nha bạn:

Mình không hiểu lắm ạ. Tại sao (l+r) lại chỉ xét tới √2n ạ? Ad cho mình xin vd của việc tạo ra bộ nghiệm tương tự phần ta xét được không ạ?