Skip to content

Instantly share code, notes, and snippets.

@tischsoic
Created January 26, 2015 00:05
Show Gist options
  • Save tischsoic/52833e9909ed7dfd9a35 to your computer and use it in GitHub Desktop.
Save tischsoic/52833e9909ed7dfd9a35 to your computer and use it in GitHub Desktop.
Program TPascala;
uses CRT;
function Silnia(n : integer) : integer;
begin
if n < 2 then Silnia := 1
else Silnia := n * Silnia(n-1);
end;
function DwumianN(m, n : integer) : real;
begin
//Writeln(Silnia(m), Silnia(m - n), Silnia(n));
DwumianN := Silnia(m) / (Silnia(m - n) * Silnia(n));
end;
procedure Przerwa(n : integer);
var i : integer;
begin
for i := 1 to n do Write(' ');
end;
function TPascala(n : integer) : integer;
var i, j : integer;
begin
for i := 0 to n - 1 do
begin
Przerwa(n - i);
for j := 0 to i do
begin
Write(DwumianN(i, j):5:0, ' ')//, '->>j:', j, ' i:', i, ' ');
end;
Writeln();
end;
end;
function TPascalaP(n : integer) : integer;
var i, j, k : integer;
begin
k := 0;
for i := 0 to n - 1 do
begin
//Przerwa(n - i);
if (i mod 2) = 1 then Przerwa(1);
for j := i - k to i do
begin
Write(DwumianN(i, j):5:0, ' ')//, '->>j:', j, ' i:', i, ' ');
end;
Writeln();
k := k + i mod 2;
end;
end;
function sumaDzielnikow(i : integer) : integer;
var j : integer;
begin
sumaDzielnikow := 0;
for j := 1 to Round(i/2) do
begin
if (i mod j) = 0 then sumaDzielnikow := sumaDzielnikow + j;
end;
end;
var
i, j, n : integer;
tablicaPierwszych : array of integer;
begin
TPascala(10);
TPascalaP(11);
//Writeln('Jakis tekst');
Writeln();
n := 300;
/////////////////////////////////////////////////////////////////////////////////////////////////
//Znajdowanie liczb zaprzyjaznionych z zakresu [0,n]:
for i := 0 to n do
begin
for j := 0 to n do
begin
if (sumaDzielnikow(i) = j) and (i = sumaDzielnikow(j)) and (i <> j) and (sumaDzielnikow(i) <> 0) then Writeln(i, ' ----> ', j, ' ');
end;
if i = 300 then Writeln(i);
if i = 400 then Writeln(i);
if i = 500 then Writeln(i);
if i = 700 then Writeln(i);
if i = 900 then Writeln(i);
end;
Writeln();
/////////////////////////////////////////////////////////////////////////////////////////////////
//Wyliczanie liczb pierwszych z zakresu [0,n]:
n := 12;
SetLength(tablicaPierwszych, n);
//Wypelniamy minusjedynkami:
for i := 1 to n do tablicaPierwszych[i] := -1;
//Dla 1 ustawiamy juz na poczatku 0 bo wiemy, ze nie jest liczba pierwsza:
tablicaPierwszych[1] := 0;
i := 2;
j := 0;
while i <= n do
begin
if tablicaPierwszych[i] = -1 then
begin
tablicaPierwszych[i] := i;
//Wilokrotnosci tej liczby uzupelniamy 0:
j := 2 * i;
while j <= n do
begin
tablicaPierwszych[j] := 0;
j := j + i;
end;
end;
Inc(i);
end;
//Wypisujemy elementy tablicy:
for i := 1 to n do if tablicaPierwszych[i]<> 0 then Write(tablicaPierwszych[i], ' ');
Readln(i);
end.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment