summaryrefslogtreecommitdiff
path: root/examples/euler
diff options
context:
space:
mode:
Diffstat (limited to 'examples/euler')
-rw-r--r--examples/euler/1.kurt19
-rw-r--r--examples/euler/2.kurt21
-rw-r--r--examples/euler/3.kurt16
-rw-r--r--examples/euler/4.kurt32
-rw-r--r--examples/euler/5.kurt31
5 files changed, 119 insertions, 0 deletions
diff --git a/examples/euler/1.kurt b/examples/euler/1.kurt
new file mode 100644
index 0000000..e3a3032
--- /dev/null
+++ b/examples/euler/1.kurt
@@ -0,0 +1,19 @@
+;; test
+;; (format nil "~a~%" 233168)
+
+;; https://projecteuler.net/problem=1
+;; 1000den küçük, 3 veya 5 in katı olan tüm sayıların toplamını bulun.
+;; Örnek: 10 için 3 + 5 + 6 + 9 = 23
+
+makro problem-girdi 1000 son
+
+0 3 döngü eş problem-girdi < iken
+ eş 3 % 0 =
+ üst 5 % 0 =
+ | ise
+ eş rot + değiş
+ yap
+ 1 +
+yap düş
+dump
+ \ No newline at end of file
diff --git a/examples/euler/2.kurt b/examples/euler/2.kurt
new file mode 100644
index 0000000..a1c6a67
--- /dev/null
+++ b/examples/euler/2.kurt
@@ -0,0 +1,21 @@
+;; test
+;; (format nil "~a~%" 4613732)
+
+;; https://projecteuler.net/problem=2
+;; Fibonacci serisi,
+;; f(0) = 0, f(1) = 1 ve f(n) = f(n-1) + f(n-2)
+;; şeklinde tanımlanmış bir dizidir.
+;; 0 1 1 2 3 5 8 13 21 34 55 89... gibi
+;; 4 milyondan küçük ve çift sayı olan ögelerin toplamını bulun.
+
+kütüphane "std.kurt"
+
+bel 0 store64
+0 1 döngü eş 4000000 < iken
+ eş 2 % 0 = ise
+ eş bel load64 +
+ bel değiş store64
+ yap
+ değiş üst +
+yap düş düş
+bel load64 dump
diff --git a/examples/euler/3.kurt b/examples/euler/3.kurt
new file mode 100644
index 0000000..4589786
--- /dev/null
+++ b/examples/euler/3.kurt
@@ -0,0 +1,16 @@
+;; test
+;; (format nil "~a~%" 6857)
+
+;; https://projecteuler.net/problem=3
+;; 13195 sayısının asal çarpanları 5, 7, 13 ve 29 dur.
+;; 600851475143 sayısının en büyük asal çarpanını bulun.
+
+kütüphane "std.kurt"
+
+600851475143 2 döngü üst 1 > iken
+ 2eş % 0 = ise
+ değiş üst / değiş
+ yoksa
+ 1 +
+ yap
+yap dump \ No newline at end of file
diff --git a/examples/euler/4.kurt b/examples/euler/4.kurt
new file mode 100644
index 0000000..08bc962
--- /dev/null
+++ b/examples/euler/4.kurt
@@ -0,0 +1,32 @@
+;; test
+;; (format nil "~a~%" 906609)
+
+;; palindrom sayılar ters çevrildiğinde kendine eşit olan sayılardır.
+;; iki basamaklı iki sayının çarpımından oluşan en büyük palindrom
+;; 9009 = 91 x 99 dur.
+;; üç basamaklı iki sayının çarpımından oluşan en büyük palindromu bulun.
+
+kütüphane "std.kurt"
+
+makro palindrome? (a -- bool)
+ eş
+ 0 döngü üst 0 > iken
+ 10 * üst 10 % + ;;eş dump
+ değiş 10 / değiş
+ yap değiş düş
+ =
+son
+
+bel 0 store64
+100 döngü eş 1000 < iken
+ 100 döngü eş 1000 < iken
+ 2eş * eş palindrome? ise
+ eş bel load64 > ise
+ eş bel değiş store64
+ yap
+ yap düş
+ 1 +
+ yap düş
+ 1 +
+yap düş
+bel load64 dump
diff --git a/examples/euler/5.kurt b/examples/euler/5.kurt
new file mode 100644
index 0000000..f23dcc3
--- /dev/null
+++ b/examples/euler/5.kurt
@@ -0,0 +1,31 @@
+;; test
+;; (format nil "~a~%" 232792560)
+
+;; 2520, 1den 10a kadar tüm sayılara tam bölünen en küçük sayıdır.
+;; 1den 20ye kadar tüm sayılara tam* bölünebilen en küçük sayıyı bulun.
+;; * kalansız bölünen
+
+kütüphane "std.kurt"
+
+makro N 20 son
+makro cevap bel son
+
+makro gcd (a b -- c)
+ döngü üst iken
+ üst % değiş
+ yap
+ değiş düş
+son
+
+makro lcd (a b -- c)
+ 2eş * rot rot gcd /
+son
+
+cevap 1 store64
+1 döngü eş N < iken
+ cevap
+ üst cevap load64 lcd
+ store64
+ 1 +
+yap
+cevap load64 dump \ No newline at end of file