liczby fermata

2011-10-26 08:21
0

Witam,

czy mogę prosić o pomoc w przerobieniu kodu Delphi na taki, aby program po podaniu przedzialu wyswietlil wszystkie liczby fermata?

program liczby_fermata;

{$APPTYPE CONSOLE}

function Potega(Podst, Wykl : integer) : integer;
var
  i, Wynik : Integer;
begin
  Wynik := 1;
  for i := 1 to Wykl do
    Wynik := Wynik * Podst;
  Potega := Wynik;
end;

function CzyPierwsza(Liczba : integer) : boolean;
var
  I : integer;
begin
  CzyPierwsza := True;
  for I := 2 to Liczba - 1 do
  begin
    if Liczba mod I = 0 then
    begin
      CzyPierwsza := False;
      Break;
    end;
  end;
end;

function LiczbaFermata(N : Byte) : Cardinal;
begin
  LiczbaFermata := Potega(2, Potega(2, N)) + 1;
end;

const
  Max = 4;
var
  I : Cardinal;
begin
  for I := 1 to Max do
    if CzyPierwsza(I) = True then
      Writeln('  ', I, ' jest liczba pierwsza (licza Fermata: ', LiczbaFermata(I), ').');
  Readln;
end.
edytowany 1x, ostatnio: madmike, 2011-10-26 17:53

Pozostało 580 znaków

2011-10-26 08:26
0

A próbowałeś chociaż wczytać ten zakres ?
Podpowiedź: jak już będziesz miał wczytany zakres użyj pętli for.

Pozostało 580 znaków

2011-10-26 08:28
bo
0
  1. Nie jest Ci potrzebna funkcja CzyPierwsza, (ta którą podałeś woła o pomstę do nieba).
  2. Po obliczeniu kolejnej liczby Fermata lf, sprawdzasz czy leży ona w przedziale (lf>=lewyKoniec i lf<=górnyKoniec).

Pozostało 580 znaków

2011-10-26 08:54
0

Nie bardzo wiem jak to zrobić, ponieważ jestem bardzo poczatkujacy jeżeli chodzi o delphi.

Pozostało 580 znaków

2011-10-26 11:54
0

wszystkie liczby F czy tylko liczby pierwsze F?
i-ta liczba F. to 1 shl (1 shl i)+1
w typie cardinal "zmieszczą" się tylko te dla i<5

Pozostało 580 znaków

Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0