Witam. Mam do Pastwa prośbę, mianowicie wpisanie kilku poleceń, zadań na poziomie podobnym do tych podanych poniżej. Dopiero zaczynam przygodę z programowaniem, a we wszystkich kursach jest co najwyżej 1-2 przykłady. Z góry dziękuję osobą, które poświęciły swój czas. Pozdrawiam.
a) Dla danego n naturalnego program wypisuje na ekranie te i tylko te liczby naturalne , które są <= n i jednocześnie są kwadratami liczb naturalnych.
format wypisywania:
...
liczba 16 jest kwadratem liczby 4
Program zad1b;
var n,a,b : integer;
begin
writeln('Podaj liczbe n: ');
readln(n);
a:=0;
b:=0;
while (b<=n) do
begin
writeln('liczba ',b,' jest kwadratem liczby ',a);
a:=a+1; b:=a*a end;
readln;
end.
b) Dla danego n naturalnego program wypisuje na ekranie te i tylko te liczby naturalne , które są <=n i jednocześnie są sumami kwadratów dwóch liczb naturalnych (wystarczy wypisać jedną parę takich liczb - wiemy, że może być ich więcej!).
format wypisywania:
...
liczba 10 jest suma kwadratów liczb 1 i 3
Program zad1b;
var n,a,b,c : integer;
begin
writeln('Podaj liczbe n: ');
readln(n);
a:=1;
b:=1;
c:=2;
while (c<=n) do
begin
while (c<=n) do
begin
writeln('liczba ',c,' jest suma kwadratow liczb ',a,' i ',b);
b:=b+1; c:=a*a+b*b end;
a:=a+1; b:=a;
c:=a*a+b*b end;
readln;
end.
c) Dla danego n naturalnego program wypisuje na ekranie (po jednej liczbie w wierszu) te i tylko te liczby naturalne, które są < n i są względnie pierwsze z n.
plik do przesłania zad2a.pas
program zad2aa;
var n, c : integer;
function nwd(a,b:integer):integer;
begin
while a<>b do
if a>b then a:=a-b else b:=b-a;
nwd:=a;
end;
begin
writeln('Wprowadz liczbe n: ');
readln(n);
c:=2; while c<n do begin
if (nwd(n,c) = 1) then writeln(c);
c:=c+1 end;
readln
end.
b) Dla danego n naturalnego program wypisuje na ekranie te i tylko te liczby naturalne , które <=n i jednocześnie są sumami kwadratów dwóch liczb pierwszych.
format wypisywania:
...
liczba 13 jest suma kwadratów liczb pierwszych 2 i 3
program zad2bpoprawione;
var
a, b, c, d, n : Integer;
m : boolean;
Tablica: array[0..1000] of Integer;
begin
writeln('Podaj liczbe n: ');
readln(n);
c:=0;
for a := 1 to n do
begin m:=TRUE;
for b:=2 to a-1 do if a mod b = 0 then m:=FALSE;
if m then
begin
Tablica[c]:=a;
c:=c+1;
end;
end;
for a := 0 to n do
for b := 1 to c-1 do
for d := 1 to b do
if ( Tablica[d]*Tablica[d] + Tablica[b]*Tablica[b] = a ) then writeln('Liczba ',a,' jest suma kwadratow liczb pierwszych ',Tablica[d],' ',Tablica[b]);
readln;
end.