Kết nối học sinh & sinh viên Bạc Liêu, kết nối cộng đồng Bạc Liêu, quảng bá hình ảnh Bạc Liêu, diễn đàn Bạc Liêu, người Bạc Liêu - Tôi yêu Bạc Liêu - Xứ sở thần tiên - Xứ sở diệu kỳ - Xứ thần tiên. Nhấn vào để chuyển sang diễn đàn HỌC SINH & SINH VIÊN BẠC LIÊU
Bài tập về số nguyên tố! - alo0781.com | Forums | Trao đổi, hỏi đáp về giải thuật
Đăng ký Chủ đề có bài mới Thành viên Tìm kiếm Sổ cá nhân FAQ Ngân hàng Upload
Tên sử dụng:
Mật khẩu:
Lưu mật khẩu
 
 Diễn đàn chính
 Trao đổi, hỏi đáp về giải thuật
 Bài tập về số nguyên tố!
 In chủ đề này  
Tác giả  Topic   


Thường dân




Đã được 0 người bình chọn
 (0)


  Ho Van Thong
  Nghe An, Việt Nam ()
 Thành viên từ 23:20:12, 06/04/2010
 Bạn có 338 gold.
 Hiện đang 

Đã có 52 bài viết

       

  Than phiền
Đếm số cách biểu diễn của 1 số nguyên thành tổng các số nguyên tố liên . Ví dụ :53 có hai cách là 5 + 7 + 11 + 13 + 17 và 53. 41 có ba cách 2+3+5+7+11+13, 11+13+17, và 41. Số 20 không có cách nào vì các biểu diễn như 7 + 13 và 3 + 5 + 5 + 7 không gồm các số nguyên tố liên tiếp.
Input:Nhập vào số N(N<=10000).
Output:=Số cách biểu diễn N thành tổng các số nguyên tố liên tiếp.
Vd:
Input1: 3.
Output1: 1.
=>Giải thích 1:3=3.
Input2: 17.
Output: 2.
Giải thích 2:17=2+3+5+7 và 17=17;
Các bạn cùng nhau đóng ghóp lời giải nha!
Đây là 1 bài tập co bản!


Hovanthong

Được viết vào ngày: 16/07/2010 lúc  22:28:23


Đại úy





Đã được 1 người bình chọn
 (5)


  đừng đánh littlelee
  dead city, Việt Nam ()
 Thành viên từ 18:22:31, 15/03/2010
 Bạn có 324 gold.
 Hiện đang 

Đã có 73 bài viết

     

  Than phiền
Cơ bản có nghĩa là sao. Cơ bản của cấp 2 cấp 3 hả . Theo mình thì qhd.

-''-''-''-''-''-''-''-''-''-''-''-''-''-
Kí à, rẹt..rẹt..rẹt.....
He he xong rồi.

Được viết lúc  09:38:54, 19/07/2010


Thường dân





Đã được 0 người bình chọn
 (0)


  Ho Van Thong
  Nghe An, Việt Nam ()
 Thành viên từ 23:20:12, 06/04/2010
 Bạn có 338 gold.
 Hiện đang 

Đã có 52 bài viết

       

  Than phiền
Bài này là cơ bản cho những người mới học tin!
Cái này có hai cách:
1.Quy hoạch động.
2.Làm hàm kiểm tra số nguyên tố.
Ai làm bài này bằng qhđ thì có thể post lên cho mọi người xem được không?

Hovanthong

Được viết lúc  16:19:42, 19/07/2010


Đại úy





Đã được 1 người bình chọn
 (5)


  đừng đánh littlelee
  dead city, Việt Nam ()
 Thành viên từ 18:22:31, 15/03/2010
 Bạn có 324 gold.
 Hiện đang 

Đã có 73 bài viết

     

  Than phiền
Chắc bạn làm bài tìm dãy con có tổng = S rồi đùng hok.

Làm gần y thế đó. Tạo mảng số nguyên tố có t phần tử sao cho phần tử cuối cùng vừa đủ lớn hơn N. QHD từ 1 đến t-1.

-''-''-''-''-''-''-''-''-''-''-''-''-''-
Kí à, rẹt..rẹt..rẹt.....
He he xong rồi.

Được viết lúc  19:19:59, 20/07/2010


Thường dân





Đã được 0 người bình chọn
 (0)


  Ho Van Thong
  Nghe An, Việt Nam ()
 Thành viên từ 23:20:12, 06/04/2010
 Bạn có 338 gold.
 Hiện đang 

Đã có 52 bài viết

       

  Than phiền
Bạn có thể viết ra cho mình rõ được không?


Hovanthong

Được viết lúc  20:24:14, 24/07/2010


Thường dân





Đã được 1 người bình chọn
 (5)


  Trình Gia Huy
  Bạc Liêu, Việt Nam ()
 Thành viên từ 11:28:54, 30/09/2010
 Bạn có 366 gold.
 Hiện đang 

Đã có 44 bài viết

   

  Than phiền
mình nghỉ trước tiên ta phải làm hàm kiểm tra số nguyên tố.liệt kê các số nguyên tố trong đoạn từ 1->N sau đó dùng dòng lặp để kiểm tra tổng các số nguyên tố từ bé đến lớn roi đem so sánh với N

-----------(^_^)-----------

Được viết lúc  12:42:22, 04/10/2010


Thường dân





Đã được 1 người bình chọn
 (5)


  Trình Gia Huy
  Bạc Liêu, Việt Nam ()
 Thành viên từ 11:28:54, 30/09/2010
 Bạn có 366 gold.
 Hiện đang 

Đã có 44 bài viết

   

  Than phiền
mình có ý kiến vậy thui chứ mình không biết viết chương trình đâu


-----------(^_^)-----------

Được viết lúc  12:43:30, 04/10/2010


Thường dân





Đã được 1 người bình chọn
 (5)


  Trình Gia Huy
  Bạc Liêu, Việt Nam ()
 Thành viên từ 11:28:54, 30/09/2010
 Bạn có 366 gold.
 Hiện đang 

Đã có 44 bài viết

   

  Than phiền
var n, i: longint;
function snt(n: longint): boolean;
var k: longint;
begin
if n=1 then exit(false);
for k:=2 to trunc(sqrt(n)) do
if n mod k = 0 then exit(false):
exit(true);
end;
begin
write('Nhap n: ');
readln(n);
m:=1;
i:=1;
while i <= n do
begin
if snt(i) then m:=i+m;
begin
if n=m then break;
write('So vua nhap bang tong cac so nguyen to sau: ');
end;
end;
readln
end.

-----------(^_^)-----------

Được viết lúc  21:39:53, 05/10/2010


Thường dân





Đã được 1 người bình chọn
 (5)


  Trình Gia Huy
  Bạc Liêu, Việt Nam ()
 Thành viên từ 11:28:54, 30/09/2010
 Bạn có 366 gold.
 Hiện đang 

Đã có 44 bài viết

   

  Than phiền
quên khai báo m ùi


-----------(^_^)-----------

Được viết lúc  21:40:19, 05/10/2010


Thường dân





Đã được 1 người bình chọn
 (5)


  Trình Gia Huy
  Bạc Liêu, Việt Nam ()
 Thành viên từ 11:28:54, 30/09/2010
 Bạn có 366 gold.
 Hiện đang 

Đã có 44 bài viết

   

  Than phiền
mình mới học pascal thôi,nếu có sai sót thì nhờ các bạn giúp đỡ nhiều hak?


-----------(^_^)-----------

Được viết lúc  21:42:30, 05/10/2010


Thường dân





Đã được 1 người bình chọn
 (5)


  Trình Gia Huy
  Bạc Liêu, Việt Nam ()
 Thành viên từ 11:28:54, 30/09/2010
 Bạn có 366 gold.
 Hiện đang 

Đã có 44 bài viết

   

  Than phiền
mình mới học pascal thôi,nếu có sai sót thì nhờ các bạn giúp đỡ nhiều hak?


-----------(^_^)-----------

Được viết lúc  21:42:30, 05/10/2010


Thường dân





Đã được 1 người bình chọn
 (5)


  Trình Gia Huy
  Bạc Liêu, Việt Nam ()
 Thành viên từ 11:28:54, 30/09/2010
 Bạn có 366 gold.
 Hiện đang 

Đã có 44 bài viết

   

  Than phiền
xin lỗi các bạn hak!chương trình cua mình có nhiều thiếu sót quá,mình sẽ sửa lại như thế này
var N, s: longint;
m, i, j:longint;
function snt(N: longint): boolean;
var k: longint;
begin
if n=1 then exit(false);
for k:=2 to trunc(sqrt(n)) do if (n mod k =0) then exit(false);
exit(true);
end;
BEGIN
write('Nhap N = ');
readln(N);
m:=1; s:=0;
for i:=1 to N do
begin
m:=m+1;
while snt(m) do
begin
for j:=m to N do
begin
while snt(j) do
s:= s+j;
end;
if s=N then write(N,' = ',j,' + ');
end;
end;
readln
END.

-----------(^_^)-----------

Được viết lúc  12:00:21, 08/10/2010


Phó thường dân





Đã được 0 người bình chọn
 (0)


  Trần Minh Hùng
  Quảng Nam, Việt Nam ()
 Thành viên từ 14:33:42, 17/04/2010
 Bạn có 152 gold.
 Hiện đang 

Đã có 17 bài viết

     

  Than phiền
mình nghĩ dùng đoạn chương trình sau để liệt kê các số nguyên tố cho vào mảng a, sau đó đệ quy để tìm số cách thõa

const max=100;
maxc=10000;
var
a:array[1..max] of word;
s,n:integer;

procedure khoitao;{liet ke cac so nguyen to tu 1 den n gan vao mang a}
var i,j:integer;
tmp:array[1..max] of boolean;
begin
writeln('n='); readln(n);
for i:=1 to n do tmp[i]:=true;
i:=1;
while i<round(sqrt(n)) do
begin
inc(i);
for j:=2 to n div i do tmp[i*j]:=false;
end;
j:=0;
for i:=2 to n do
if tmp[i] then
begin
inc(j);
a[j]:=i;
end;
s:=j;
b[0]:=0;
for i:=1 to n do b[i]:=maxc;
end;



Được viết lúc  16:18:25, 08/11/2010


Phó thường dân





Đã được 0 người bình chọn
 (0)


  Trần Minh Hùng
  Quảng Nam, Việt Nam ()
 Thành viên từ 14:33:42, 17/04/2010
 Bạn có 152 gold.
 Hiện đang 

Đã có 17 bài viết

     

  Than phiền
Mình chỉ biết bài qhd tìm dãy các phần tử trong a bằng số m nào đó chứ chưa từng nghe dùng qhd để tìm các phần từ liên tiếp trong a bằng m. Bạn nào biết post lên cho mọi người cùng học hỏi


Được viết lúc  16:20:10, 08/11/2010


Phó thường dân





Đã được 0 người bình chọn
 (0)


  fgfgfgfgf dfdfdfd
  dfdfdfdfdfd, Việt Nam ()
 Thành viên từ 06:18:03, 14/10/2011
 Bạn có 120 gold.
 Hiện đang 

Đã có 6 bài viết

         

  Than phiền
anh Thong ah bai nay em thay cung kha hay nhung cung chua hieu cach lam lam anh chi ro chut nua duoc khong?anh day o quynh luu ah?

dsdsds dsds

Được viết lúc  09:31:29, 28/10/2011


Chủ tịch





Đã được 12 người bình chọn
 (5)


  Quách Văn Lượm
  Bạc Liêu, Việt Nam ()
 Thành viên từ 00:00:00, 15/02/2003
 Bạn có 1001667 gold.
 Hiện đang 

Đã có 415 bài viết

       

  Than phiền
Bài này đã có từ 1 năm trước rồi. Không ngờ bạn tuthuonghv1 vẫn tìm thấy được.

Bài này với số liệu n<10.000 thì không thành vấn đề rồi. Nếu như n khoảng vài triệu thì hơi rối một chút.

Vì n quá nhỏ nên giải thuật O(n^2) là chấp nhận được.

- Dùng 2 vòng for sinh ra mảng a các số nguyên tố.
- Dùng 1 vòng for sinh ra tổng liên tiếp luôn bắt đầu từ a[1]
- Dùng 2 vòng for để sinh ra các cách phân tích.

Như vậy là xong rồi!
Chúc bạn thành công!

alo0781.com

Được viết lúc  22:22:36, 29/10/2011


Chủ tịch





Đã được 12 người bình chọn
 (5)


  Quách Văn Lượm
  Bạc Liêu, Việt Nam ()
 Thành viên từ 00:00:00, 15/02/2003
 Bạn có 1001667 gold.
 Hiện đang 

Đã có 415 bài viết

       

  Than phiền
Đại khái vài dòng code như thế này (thực tế thì người ta không bao giờ viết code sinh ra mảng các số nguyên tố đâu):

k:=0;
s[0]:=0;
for i:=1 to n do
if nguyento(i) then
begin
inc(k);
s[k]:= s[k-1]+i;
end;

dem:=0;
for i:=1 to k do
for j:=0 to i-1 do
if s[i]-s[j] = n then inc(dem);

Write(dem);

Tuy nhiên những dòng code này rất thô thiển chỉ cần sửa lại 1 vài chỗ (thêm điều kiện vào) chương trình sẽ chạy nhanh hơn 1 chút!
Bản thân chương trình này chạy cũng không quá 1s đâu!

alo0781.com

Được viết lúc  22:32:41, 29/10/2011


Phó thường dân





Đã được 0 người bình chọn
 (0)


  fgfgfgfgf dfdfdfd
  dfdfdfdfdfd, Việt Nam ()
 Thành viên từ 06:18:03, 14/10/2011
 Bạn có 120 gold.
 Hiện đang 

Đã có 6 bài viết

         

  Than phiền
DẠ CẢM ƠN ANH LƯỢM NHIỀU!!!!

dsdsds dsds

Được viết lúc  17:16:45, 30/10/2011

   


Đề nghị các bạn tuân thủ qui định của diễn đàn khi gửi bài lên diễn đàn. Để bảo vệ diễn đàn, các bạn hãy thông báo với ban quản trị khi thấy các bài vi phạm qui định bằng cách ấn vào biểu tượng ở bên cạnh mỗi bài.

Chuyển đến:

Set as your default homepage Add favorite Forum Quy định chung   Thông báo lỗi Forum Maxwebportal
2010 - Phát triển bởi alo0781.com
Go To Top Of Page

Xử lý trang này hết 0.515 giây