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.