diff options
| author | deadmarshal <adeadmarshal@gmail.com> | 2022-05-15 13:41:21 +0430 |
|---|---|---|
| committer | deadmarshal <adeadmarshal@gmail.com> | 2022-05-15 13:41:21 +0430 |
| commit | 88c9a78a58a7e5ad4c175a8e6d6fb94283453d38 (patch) | |
| tree | 9870acf6ebd799ce923242872a890dcbc6e3a148 /challenge-164/deadmarshal/pascal | |
| parent | 4a5f38a2d4cd826e084132cf3599d75396535b05 (diff) | |
| download | perlweeklychallenge-club-88c9a78a58a7e5ad4c175a8e6d6fb94283453d38.tar.gz perlweeklychallenge-club-88c9a78a58a7e5ad4c175a8e6d6fb94283453d38.tar.bz2 perlweeklychallenge-club-88c9a78a58a7e5ad4c175a8e6d6fb94283453d38.zip | |
added challenge164 solutions.
Diffstat (limited to 'challenge-164/deadmarshal/pascal')
| -rw-r--r-- | challenge-164/deadmarshal/pascal/ch1.pas | 31 | ||||
| -rw-r--r-- | challenge-164/deadmarshal/pascal/ch2.pas | 64 |
2 files changed, 95 insertions, 0 deletions
diff --git a/challenge-164/deadmarshal/pascal/ch1.pas b/challenge-164/deadmarshal/pascal/ch1.pas new file mode 100644 index 0000000000..b9cd218c25 --- /dev/null +++ b/challenge-164/deadmarshal/pascal/ch1.pas @@ -0,0 +1,31 @@ +program Ch1; + +{$mode objfpc} +var + I:Integer; + +function IsPrime(N:Integer):Boolean; +var + I:Integer; +begin + if(N <= 1) then Exit(False); + for I := 2 to Trunc(Sqrt(N)) do + if(N mod I = 0) then Exit(False); + Result := True; +end; + +function ReverseNum(N:Integer):Integer; +begin + Result := 0; + while(N <> 0) do + begin + Result := (Result * 10) + (N mod 10); + N := N div 10; + end; +end; + +begin + for I := 1 to 1000 do + if((I = ReverseNum(I)) and IsPrime(I)) then + Write(I, ' '); +end. diff --git a/challenge-164/deadmarshal/pascal/ch2.pas b/challenge-164/deadmarshal/pascal/ch2.pas new file mode 100644 index 0000000000..90a7250e82 --- /dev/null +++ b/challenge-164/deadmarshal/pascal/ch2.pas @@ -0,0 +1,64 @@ +program Ch2; + +{$mode objfpc} + +uses + SysUtils,Math,Generics.Collections; + +function SumSquares(N:Integer):Integer; +begin + Result := 0; + while N <> 0 do + begin + Result := Result + Trunc(Power((N mod 10),2)); + n := N div 10; + end; +end; + +function IsHappy(N:Integer):Boolean; +type + TMap = specialize THashMap<Integer,Integer>; +var + Value:Integer; + Map:TMap; +begin + Map := TMap.Create; + while True do + begin + Map.Add(N, 1); + N := SumSquares(N); + if(N = 1) then + begin + Result := True; + break; + end; + Map.TryGetValue(N,Value); + if(Value <> 0) then + begin + Result := False; + break; + end; + end; + FreeAndNil(Map); +end; + +procedure HappyNumbers; +var + I,Count:Integer; +begin + I := 0; + Count := 0; + while Count < 8 do + begin + if IsHappy(I) then + begin + Write(I, ' '); + Inc(Count); + end; + Inc(I); + end; +end; + +begin + HappyNumbers; +end. |
