Nộp bài | Các bài nộp | Làm tốt nhất | Về danh sách bài |
PTIT124F - Vòng số nguyên tố |
Một vòng tròn chứa 2n vòng tròn nhỏ (Xem hình vẽ). Các vòng tròn nhỏ được đánh số từ 1 đến n theo chiều kim đồng hồ. Cần điền các số tự nhiên từ 1 đến 2n mỗi số vào một vòng tròn nhỏ sao cho tổng của hai số trên hai vòng tròn nhỏ liên tiếp là số nguyên tố. Số điền ở vòng tròn nhỏ 1 luôn là số 1.
Input
Gồm 1 số nguyên dương n (1 < n < 10)
Output
- Dòng đầu tiên ghi số lượng các cách điền số tìm được (k).
- Dòng thứ i trong số k dòng tiếp theo ghi các số trong các vòng tròn nhỏ bắt đầu từ vòng tròn nhỏ 1 đọc theo thứ tự của các vòng tròn nhỏ. Cách điền nào có thứ tự từ điển nhỏ hơn thì xếp trước. Nếu K > 10000 thì chỉ cần ghi ra 10000 cách đầu tiên
Example
Input:
4
Output:4
1 2 3 8 5 6 7 4
1 2 5 8 3 4 7 6
1 4 7 6 5 8 3 2
1 6 7 4 3 8 5 2
Được gửi lên bởi: | adm |
Ngày: | 2012-03-10 |
Thời gian chạy: | 1s |
Giới hạn mã nguồn: | 50000B |
Memory limit: | 1536MB |
Cluster: | Cube (Intel G860) |
Ngôn ngữ cho phép: | ASM32-GCC ASM32 MAWK BC C CSHARP C++ 4.3.2 CPP CPP14 COFFEE LISP sbcl DART FORTH GO JAVA JS-RHINO JS-MONKEY KTLN OCT PAS-GPC PAS-FPC PERL PERL6 PROLOG PYTHON PYTHON3 PY_NBC R RACKET SQLITE SWIFT UNLAMBDA |
hide comments
2019-08-17 22:08:38
sao bị lỗi nzec vậy mọi người :( https://ideone.com/5EY3Hs |
|
2017-07-02 10:35:44
const fi =''; fo=''; type vector = array[1..20] of byte; var n:longint; f:text; x,d:vector; snt:array[1..50] of boolean; lutu:array[1..10000] of vector; k,dem,i,j,s:longint; procedure ssnt; var j,i:longint; begin fillchar(snt,sizeof(snt),true); for i:= 2 to trunc(sqrt(50)) do if snt[i] then begin j:= i*i; while j<=50 do begin snt[j]:= false; j:= j+i; end; end; end; procedure update; begin if (snt[s+1]= false) then exit; inc(k); if k>10000 then exit; dem:=k; lutu[k]:= x; end; procedure vsnt(i:longint); var j:longint; begin for j:= 2 to 2*n do if d[j]=0 then begin x[i]:= j; d[j]:= 1; s:= x[i-1]+x[i]; if (snt[s]=true) then if i=2*n then update else vsnt(i+1); d[x[i]]:= 0; end; end; procedure init; begin k:= 0 ; x[1]:= 1; fillchar(d,sizeof(d),0); ssnt; vsnt(2); end; procedure doctep; begin assign(f,fi);reset(f); readln(f,n); init; close(f); end; procedure ghitep; begin assign(f,fo);rewrite(f); writeln(f,k); for i:= 1 to dem do begin for j:= 1 to 2*n do write(f,lutu[i][j],' '); writeln(f); end; close(f); end; begin doctep; ghitep; end. |
|
2016-11-24 04:44:01
ai giải thích cái test bài với ko hiểu sao ra 4 đc |
|
2014-09-24 08:37:03 あ
Đệ quy quay lui có xoaá |
|
2013-01-29 17:39:02 Trần Vãn Dương D10CN2
Last edit: 2013-01-30 01:03:44 |