- Ebook Giải thuật và lập trình Lê Minh Hoàng
- Các thuật toán sắp xếp trong Pascal

Bài tập dãy Fibonaci và số nguyên tố



Dãy FIBONACI là dãy được xác định như sau: F(0) = 0; F(1) = 1 và F(n) = F(n-1) + F(n-2) với n = 2, 3...
Hãy viết chương trình máy tính để nhập từ bàn phím số nguyên dương M (2<M<2000000000), rồi xuất ra màn hình số FIBONACI lớn nhất là nguyên tố và nhỏ hơn M.

Ví dụ: Với M=10 thì các số FIBONACI nhỏ hơn M là: 0, 1, 1, 2, 3, 5, 8. Số 5 là số nguyên tố lớn nhất trong các số FIBONACI nhỏ hơn M. Vậy cần đưa ra màn hình dòng thông báo kết quả: Số cần tìm là: 5.

uses crt;
var j,i,m,a,b,t:longint;

{----------------------}

Function kt(n:longint):boolean;
 var i,d:integer;
  begin
  kt:=false;
  d:=0;
   For i:=1 to n do
    if n mod i=0 then inc(d);
  if d=2 then kt:=true;
 end;

{----------------------}

begin
 clrscr;
 Write('Nhap m= ');
 readln(m);
 a:=0;
 b:=1;
  Repeat
   a:=a+b;
   b:=a+b;
  Until (a>=m) and (b>=m);

   if a<b then begin t:=a;a:=b;b:=t;end;

  Repeat
   a:=a-b;
   b:=b-a;
  Until ( (kt(a)) and (a<m))  or ( (kt(b)) and (b<m) );
If a>b then writeln(a);
 if b>a then writeln(b);

{----------------------}

  readln
 end.



Nặc danh nói...

đề bài sau khó quá mong các bạn giải dùm! Cảm ơn!
( Sử dụng thuật toán quay lui)
Đề:
Cho dãy số nguyên A gồm n phần tử a1,a2,a3,...,an. Tìm cặp chỉ số i,j thỏa mãn: /(a1+a2+...+ai)-(aj+a j+1 +...+an)/ đạt gá trị lớn nhất (1<=i<j<=n).


21:54 Ngày 19 tháng 11 năm 2012
Nặc danh nói...

giai nhin cung de^^


14:03 Ngày 06 tháng 01 năm 2013
quan meo nói...

Sao k ls theo kieu mang de hieu hon n` :)


21:15 Ngày 14 tháng 04 năm 2013
Nặc danh nói...

BINH THUONG
DE THOI MA CHI CAN TACH SAO CO KET QUA BT TREN ROI SO SANH VS CACH TACH KHAC NAK SAU DO NEU LON HON THI LAY NHO HON THI BO


08:59 Ngày 18 tháng 04 năm 2013
lam thao nói...

bai nay mk cug lm dk nhug mk lm khac


20:01 Ngày 06 tháng 12 năm 2013
tieulong nói...

Các bạn giải giúp mình bài này với
Chia N việc cho M máy
Cho N công việc , công việc I hoàn thành trong thời gian t[i]. Các công việc được thực hiên trên M máy công suất như nhau, mỗi máy đều có thể thực hiênk được công việc bất kì trong N việc) mỗi công việc được làm liên tục trên một máy cho đến khi xong .Hãy tổ chức máy thực hiện đủ N công việc sao cho thời gian hoàn thành càng nhỏ càng tốt.

Dữ liệu: XL07.INP

- Dòng đầu gồm 2 số nguyên N,M
- Dòng tiếp theo là N số T1,T2..Tn

Kết quả: Xl07.OUT :

- Dòng đầu là thời gian hoàn thành n công việc
- M dòng sau dòng i+1 ghi các số hiệu công việc thực hiên trên máy i

Ví dụ:
XL08.INP
6 3
2 5 8 1 5 1
XL08.OUT
8
3
2 1 4
5 6


22:37 Ngày 26 tháng 12 năm 2013
Nặc danh nói...

giải giúp với: in ra số thứ n trong dãy số nguyên tố với n nhập vào, dùng vòng lặp nha


08:13 Ngày 11 tháng 07 năm 2014
Khoa Trần Đăng nói...

Cách giải khác như vầy đúng không vậy mấy bạn??
uses crt;
function nguyento(m:integer):boolean;
var i,dem:integer;
begin
nguyento:=false; dem:=0;
for i:=1 to m do
if (m mod i =0) then inc(dem);
if dem=2 then nguyento:=true;
end;
var a1,a2,a3,max,n:integer;
begin
clrscr;
write('Nhap n: '); readln(n);
a2:=0; a3:=1; max:=2;
repeat
a1:=a2;
a2:=a3;
a3:=a1+a2; writeln(a3);
if (a3>max) and (nguyento(a3)=true) then max:=a3;
until a3>=n-a1;
write('Gia tri do la: ',max);
readln;
end.


10:55 Ngày 14 tháng 02 năm 2016
Nặc danh nói...

phần kt số nt nếu mk cho chạy to lên thì sẽ lâu
nên chỉnh phần kt số nt thành như sau:
i:=2;d:=0;
while (n mod i<>0) and (i<=trunc(sqrt(n))) then d:=d+1;
if d>trunc(sqrt(n)) then kt:=true
else kt:=false;
Nếu có gì sai thì các bạn thông cảm


16:51 Ngày 28 tháng 10 năm 2016
Hạnh Phan Thị Mỹ nói...

Khoa Trần Đăng bài nào vậy?


10:20 Ngày 12 tháng 11 năm 2016

Đăng nhận xét

Thành viên Blog

Tổng số lượt xem trang

Translate

Return to top of page Copyright © 2012 | Theme by Hack Tutors. Cung cấp bởi Blogger.
Các code pascal trong blog được sưu tầm, lựa chọn sao cho tối ưu nhất. Cảm ơn các tác giả đã viết thuật toán.