Mısır Kesirleri


20

Genel bakış:

Kaynaktan Wikipedia : bir Mısır fraksiyon ayrı birim fraksiyonlarının toplamıdır. Yani, ifadedeki her kesirin 1'e eşit bir payı ve pozitif bir tamsayı olan bir payda vardır ve tüm paydalar birbirinden farklıdır. Bu tür bir ifadenin değeri, pozitif bir rasyonel sayı a / b'dir. Her pozitif rasyonel sayı bir Mısır fraksiyonu ile temsil edilebilir.

Meydan okuma:

Belirli bir kesire kadar eklenmiş en küçük birim kesirleri kümesi için tüm paydaların değerlerini döndürecek en kısa işlevi yazın .

Kurallar / Kısıtlamalar:

  • Girdi iki pozitif tamsayı değeri olacaktır.
    • Bu açık STDIN, argvvirgülle ayrılmış, boşlukla ayrılmış veya tercih ettiğiniz başka bir yöntem olabilir.
  • İlk giriş değeri pay ve ikinci giriş değeri payda olmalıdır.
  • İlk giriş değeri ikinciden küçük olmalıdır.
  • Çıktı, sisteminizin / dilinizin bellek sınırlamalarını aşan bir değer (değerler) içerebilir (RAM, MAX_INT veya varsa diğer kod / sistem kısıtlamaları). Bu olursa, sonucu mümkün olan en yüksek değerde kesin ve bir şekilde not edin (yani ...).
  • Çıktı en az 2.147.483.647'ye (2 31 -1, imzalı 32 bit int) kadar bir payda değerini işleyebilmelidir .
    • Daha yüksek bir değer ( longvb.) Mükemmel bir şekilde kabul edilebilir.
  • Çıktı, bulunan en küçük birim fraksiyonlar grubunun (veya fraksiyonların kendileri, yani 1/2) tüm payda değerlerinin bir listesi olacaktır .
  • Çıktı, payda değerine göre (kesir değerine göre azalan) artan şekilde sıralanacaktır.
  • Çıktı istediğiniz şekilde sınırlandırılabilir, ancak bir değeri diğerinden ayırmak için aralarında bir karakter olmalıdır.
  • Bu kod golf, bu yüzden en kısa çözüm kazanır.

Exmaples:

  • Giriş 1:

    43, 48

  • Çıkış 1:

    2, 3, 16

  • Giriş 2:

    8/11

  • Çıkış 2:

    1/2 1/6 1/22 1/66

  • Giriş 3:

    5 121

  • Çıkış 3:

    33 121 363


Girdi / Çıktı 2 olmalı 8, 11ve 2, 6, 22, 66doğru mu?
mellamokb

2
Yoksulluğu ortadan kaldırmak için olası bir öneri, en küçük nihai paydaya sahip en küçük birim kesir kümesini gerektirecektir. Örneğin , girdi 1/2 1/6 1/22 1/66için tercih edilir . 1/2 1/5 1/37 1/40708/11
primo

2
5/121 = 1/33+1/121+1/363Test senaryolarını eklemenizi öneririm . Tüm açgözlü programlar (benimki dahil) bunun için 5 kesir verir. Wikipedia'dan alınan örnek .
ugoren

1
@primo Birden fazla minimum varsa, hangisinin bulunabileceğini kabul edilebilir olacağını düşünüyorum. Sonuç olarak bir algoritma daha az karakterle yazılabilirse, bu çözümü engellemek istemem.
Gaffi

1
Matematik Tarihi dersinde Mısır fraksiyonlarını öğrendiğimden +1 kazandım (ve onlarla matematik yapmak zorunda kaldım ve bu problem gibi kesirli toplamları bulmak zorunda kaldım.) Güzel ve yaratıcı bir meydan okuma.
mbomb007

Yanıtlar:


6

Ortak Lisp, 137 karakter

(defun z(n)(labels((i(n s r)(cond((= n 0)r)((< n(/ 1 s))(i n(ceiling(/ 1 n))r))(t(i(- n(/ 1 s))(1+ s)(cons s r))))))(reverse(i n 2'()))))

(z 43/48) -> (2 3 16)

(z 8/11) -> (2 5 37 4070)

(z 5/121) -> (25757 763309 873960180913 1527612795642093418846225)

Büyük sayılar için endişelenmenize veya kesirli gösterimi kullanmanıza gerek yok!


(defun z (n) (etiketler ((i (nsr) (koşul ((= n 0) r) ((<n (/ 1 s)) (içinde (tavan (/ 1 n)) r)) (t ( i (- n (/ 1 sn)) (1+ sn) (eksileri)))))) (geri (2 '())))) (z 43/48) Tio ile sonuçlanma ... Sonucu yazdırmak için ne kullanmalıyım?
RosLuP

1
(print (z 103/333)) 5 sayıdan oluşan bir liste döndürür, ancak şu şekilde 4 sayıdan oluşan bir liste bulunur: 1 / 4,1 / 18,1 / 333,1 / 1332. Dolayısıyla yukarıdaki fonksiyon minimum değeri döndürmez.
RosLuP

8

Python 2, 169166 karakter

x,y=input()
def R(n,a,b):
 if n<2:return[b/a][b%a:]
 for m in range((b+a-1)/a,b*n/a):
  L=R(n-1,a*m-b,m*b)
  if L:return[m]+L
n=L=0
while not L:n+=1;L=R(n,x,y)
print L

Stdin üzerinde virgülle ayrılmış argümanlar alır ve stdout'a bir python listesi yazdırır.

$ echo 8,11 | ./egypt.py 
[2, 5, 37, 4070]

2
1. Sanırım ikinci girinti düzeyindeki sekmeyi kullanarak iki karakter kaydedebilirsiniz. 2. Komut dosyası, sistem belleği sınırlamalarının aşılması nedeniyle kesmeyi göstermiyor.
ekmek kutusu

In Tio Kodunuz sadece 103/45533 için bellek dışı kalıyor
RosLuP

Bunun yerine Ideone'da kodunuz aynı girdi için çalışma zamanı hatasına giriyor 103,45533: Çalışma zamanı hatası #stdin #stdout #stderr 0.89s 99264KB
RosLuP

4

PHP 82 bayt

<?for(fscanf(STDIN,"%d%d",$a,$b);$a;)++$i<$b/$a||printf("$i ",$a=$a*$i-$b,$b*=$i);

Bu daha kısa yapılabilir, ancak kayan nokta yuvarlama hatasını önlemek için mevcut pay ve payda tam sayı olarak tutulmalıdır (geçerli kesiri tutmak yerine).

Örnek kullanım:

$ echo 43 48 | php egyptian-fraction.php
2 3 16
$ echo 8 11 | php egyptian-fraction.php
2 5 37 4070

Virgül operatörü printf için yararsız argümanlar olarak taklit edildi mi? Bu numarayı bir yerlerde kurtarmalıyım.
Konrad Borowski

1
Bunun açgözlü bir Algoritma olduğundan eminim , bu yüzden her zaman en küçük kesirleri vermeyecektir. 5 121Veya gibi bir girdi ile çalıştırırsanız 31 311, yanlış cevap verecektir (çok uzun bir süre sonra).
grc

@grc 31/311 -> {a [1] -> 11, a [2] -> 115, a [3] -> 13570, a [4] -> 46422970}
Dr. belisarius

4

C, 163177 karakter

6/6 : Sonunda, program şimdi her durumda kesmeyi doğru bir şekilde ele alıyor. Umduğumdan çok daha fazla karakter aldı, ama buna değdi. Programın şimdi% 100 sorun gereksinimlerine uyması gerekir.

d[99],c,z;
r(p,q,n,i){for(c=n+q%p<2,i=q/p;c?d[c++]=i,0:++i<n*q/p;)q>~0U/2/i?c=2:r(i*p-q,i*q,n-1);}
main(a,b){for(scanf("%d%d",&a,&b);!c;r(a,b,++z));while(--c)printf("%d\n",d[c]);}

Program pay ve paydayı standart girdi olarak alır. Paydalar her satıra bir tane olmak üzere standart çıktıya yazdırılır. Kesik çıktı, listenin sonuna sıfır payda basılarak gösterilir:

$ ./a.out
2020 2064
2
3
7
402
242004

$ ./a.out
6745 7604
2
3
19
937
1007747
0

İkinci örnekteki paydalar, 6745 / 7604'ten kabaca 1e-14 farklı olan 95485142815 / 107645519046'ya karşılık gelir.


Yine, bunun açgözlü bir algoritma olduğunu düşünüyorum.
grc

En dıştaki döngü, N + 1 paydalarının cevaplarını test etmeye başlamadan önce N paydalarının tüm olası cevaplarını araştırır. Sanırım açgözlü diyebilirsiniz, ama bunun belirtilen sorunu yerine getirdiğine inanıyorum.
ekmek kutusu

Üzgünüm, geri alıyorum. Açgözlü çözümü takip etmiyor, ancak bazı girdiler için tamamen doğru olmadığını gördüm ( 31 311örneğin).
grc

31 311Taşar, ancak program işaretlemez.
ekmek kutusu

3

Python, 61 karakter

STDIN girişi, virgülle ayrılmış.
STDOUT çıktısı, satır sonu ayrılmış.
Her zaman en kısa temsili döndürmez (örneğin 5/121 için).

a,b=input()
while a:
    i=(b+a-1)/a
    print"1/%d"%i
    a,b=a*i-b,i*b

Gereksiz yeni satır olmadan sayılan karakterler (örneğin, içindeki tüm satırları birleştirme whilekullanılarak ;).
Kesir a/b.
iolduğunu b/abiliyorum bu yüzden, yuvarlanır 1/i <= a/b.
Yazdırdıktan sonra ile 1/ideğiştiriyorum , yani .a/ba/b - 1/i(a*i-b)/(i*b)


O zamandan beri, bu kadar oy istediklerini olduğu kadar küçük, ama sadece olaylar tek parça eksik!
Gaffi

2
Bu parçayı düzeltmek istiyorum, ama o zaman o kadar küçük olmayacak ... Keith Randall'ın çözümünü yeniden keşfedeceğim gibi hissediyorum.
ugoren

2

C, 94 bayt

n,d,i;main(){scanf("%i%i",&n,&d);for(i=1;n>0&++i>0;){if(n*i>=d)printf("%i ",i),n=n*i-d,d*=i;}}

Çevrimiçi Deneyin

edit: Kodun daha kısa bir versiyonu yorumlarda yayınlanmıştır, bu yüzden değiştirdim. Teşekkürler!


2
Merhaba, siteye hoş geldiniz! Bu bir kod golf yarışmasıdır, bu yüzden amaç kodunuzu mümkün olduğunca kısa yapmaktır . Kodunuzu kısaltmak için yapabileceğiniz birçok şey var gibi görünüyor. Örneğin, tüm gereksiz boşlukları cevabınızdan kaldırabilirsiniz.
DJMcMayhem

@DJMcMayhem Teşekkür ederim efendim, anlaşıldı ve bitti.
か ち わ 密 か

Merhaba, PPCG'ye hoş geldiniz! Meydan okumadaki test senaryoları için test kodlu bir TryItOnline bağlantısı ekleyebilir misiniz ? Ayrıca, golf yapabileceğiniz bazı şeyler: for(i=2;n>0&&i>0;i++)olabilir for(i=1;n>0&++i>0;); for-loop'un braketleri çıkarılabilir (çünkü sadece ifiç kısmı vardır ); d=d*i;olabilir d*=i;; ve ben tamamen emin değilim ama sanırım #include <stdio.h>boşluksuz şunlar olabilir: #include<stdio.h>. Oh, ve okumak ilginç olabilir C golf için ipuçları ve içinde golf için ipuçları <Tüm dilleri>
Kevin Cruijssen

@KevinCruijssen İpuçları için teşekkürler.
ち わ 密 か



0

AXIOM, 753 bayt

L==>List FRAC INT
macro  M(q)==if c<m or(c=m and m<999 and reduce(max,map(denom,q))<xv)then(m:=c;a:=q;xv:=reduce(max,map(denom,a)))
f(x,n)==(y:=x;a:L:=[];c:=0;q:=denom x;q:=q^4;for i in n.. repeat((c:=c+1)>50=>(a:=[];break);1/i>y=>1;member?(1/i,a)=>1;a:=concat(a,1/i);(y:=y-1/i)=0=>break;numer(y)=1 and ~member?(y,a)=>(a:=concat(a,y);break);(i:=floor(1/y))>q=>(a:=[];break));a)
h(x:FRAC INT):L==(a:L:=[];x>1=>a;numer(x)=1=>[x];n:=max(2,floor(1/x));xv:=m:=999;d:=denom x;zd:=divisors d;z:=copy zd;for i in 2..30 repeat z:=concat(z,i*zd);d:=min(10*d,n+9*m);for i in n..d repeat((c:=maxIndex(b:=f(x,i)))=0=>1;c>m+1=>1;M(b);v:=reduce(+,delete(b,1));for j in z repeat((c:=1+maxIndex(q:=f(v,j)))=1=>1;member?(b.1,q)=>1;q:=concat(b.1,q);M(q)));reverse(sort a))

Buradaki fikir, farklı başlangıç ​​noktaları olan "Açgözlü Algoritma" yı uygulamak ve minimum uzunluğa sahip listeyi kaydetmek olacaktır. Ancak her zaman değil, daha az farklı olan min çözümünü bulur: "A dizisi, yalnızca A'nın B öğelerinin birkaç öğesi varsa veya A öğesinin sayısı B öğelerinin sayısıyla aynı ise B dizisinden daha az olacaktır. , A'dan daha küçük A öğesinin sayı olarak büyük olması B'nin küçük öğesinden daha büyükse B'den küçüktür. Kurtulmamış ve test

-- this would be the "Greedy Algorithm"
fracR(x,n)==
   y:=x;a:L:=[];c:=0;q:=denom x;q:=q^4
   for i in n.. repeat
      (c:=c+1)>50   =>(a:=[];break)
      1/i>y         =>1
      member?(1/i,a)=>1
      a:=concat(a,1/i)
      (y:=y-1/i)=0  =>break
      numer(y)=1 and ~member?(y,a)=>(a:=concat(a,y);break)
      (i:=floor(1/y))>q           =>(a:=[];break)
   a

-- Return one List a=[1/x1,...,1/xn] with xn PI and x=r/s=reduce(+,a) or return [] for fail
Frazione2SommaReciproci(x:FRAC INT):L==
    a:L:=[]
    x>1       =>a
    numer(x)=1=>[x]
    n:=max(2,floor(1/x));xv:=m:=999;d:=denom x;zd:=divisors d;z:=copy zd
    for i in 2..30 repeat z:=concat(z,i*zd)
    d:=min(10*d,n+9*m) 
    for i in n..d repeat
        (c:=maxIndex(b:=fracR(x,i)))=0=>1 
        c>m+1                         =>1
        M(b)
        v:=reduce(+,delete(b,1))
        for j in z repeat
              (c:=1+maxIndex(q:=fracR(v,j)))=1=>1
              member?(b.1,q)                  =>1
              q:=concat(b.1,q)
              M(q) 
    reverse(sort a)

(7) -> [[i,h(i)] for i in [1/23,2/23,43/48,8/11,5/121,2020/2064,6745/7604,77/79,732/733]]
   (7)
      1   1      2   1  1      43  1 1  1      8  1 1  1  1
   [[--,[--]], [--,[--,---]], [--,[-,-,--]], [--,[-,-,--,--]],
     23  23     23  12 276     48  2 3 16     11  2 6 22 66
      5    1  1   1      505  1 1 1  1    1
    [---,[--,---,---]], [---,[-,-,-,---,----]],
     121  33 121 363     516  2 3 7 602 1204
     6745  1 1  1  1    1      1       77  1 1 1  1  1   1
    [----,[-,-,--,---,-----,------]], [--,[-,-,-,--,---,---]],
     7604  2 3 19 950 72238 570300     79  2 3 8 79 474 632
     732  1 1 1  1   1    1     1
    [---,[-,-,-,--,----,-----,-----]]]
     733  2 3 7 45 7330 20524 26388
                                                      Type: List List Any
       Time: 0.07 (IN) + 200.50 (EV) + 0.03 (OT) + 9.28 (GC) = 209.88 sec
(8) -> h(124547787/123456789456123456)
   (8)
        1             1                         1
   [---------, ---------------, ---------------------------------,
    991247326  140441667310032  613970685539400439432280360548704
                                     1
    -------------------------------------------------------------------]
    3855153765004125533560441957890277453240310786542602992016409976384
                                              Type: List Fraction Integer
                     Time: 17.73 (EV) + 0.02 (OT) + 1.08 (GC) = 18.83 sec
(9) -> h(27538/27539)
         1 1 1  1  1    1      1        1
   (9)  [-,-,-,--,---,-----,------,----------]
         2 3 7 52 225 10332 826170 1100871525
                                              Type: List Fraction Integer
                     Time: 0.02 (IN) + 28.08 (EV) + 1.28 (GC) = 29.38 sec

referans ve numaralar: http://www.maths.surrey.ac.uk/hosted-sites/R.Knott/Fractions/egyptian.html

bir şey eklemek için, bu, azami paydası daha az olan (ve uzunluk için optimize edilmemiş) min uzunluk fraksiyonunu bulmak için optimize edilmiş olacaktır.

L==>List FRAC INT

-- this would be the "Greedy Algorithm"
fracR(x,n)==
   y:=x;a:L:=[];c:=0;q:=denom x;q:=q^20
   for i in n.. repeat
      (c:=c+1)>1000  =>(a:=[];break)
      1/i>y          =>1
      member?(1/i,a) =>1
      a:=concat(a,1/i)
      (y:=y-1/i)=0  =>break
      numer(y)=1 and ~member?(y,a)=>(a:=concat(a,y);break)
      (i:=floor(1/y))>q           =>(a:=[];break)
   a

-- Return one List a=[1/x1,...,1/xn] with xn PI and x=r/s=reduce(+,a) or return [] for fail
Frazione2SommaReciproci(x:FRAC INT):L==
    a:L:=[]
    x>1       =>a
    numer(x)=1=>[x]
    n:=max(2,floor(1/x));xv:=m:=999;d:=denom x;zd:=divisors d;z:=copy zd; 
    w1:= if d>1.e10 then 1000 else 300; w2:= if d>1.e10 then 1000 else if d>1.e7 then 600 else if d>1.e5 then 500 else if d>1.e3 then 400 else 100;
    for i in 2..w1 repeat(mt:=(i*zd)::List PI;mv:=[yy for yy in mt|yy>=n];z:=sort(removeDuplicates(concat(z,mv)));#z>w2=>break)
    for i in z repeat
        (c:=maxIndex(b:=fracR(x,i)))=0=>1 
        c>m+1                         =>1
        if c<m or(c=m and m<999 and reduce(max,map(denom,b))<xv)then(m:=c;a:=b;xv:=reduce(max,map(denom,a)))
        v:=reduce(+,delete(b,1))
        for j in z repeat
              (c:=1+maxIndex(q:=fracR(v,j)))=1=>1
              member?(b.1,q)                  =>1
              q:=concat(b.1,q)
              if c<m or(c=m and m<999 and reduce(max,map(denom,q))<xv)then(m:=c;a:=q;xv:=reduce(max,map(denom,a)))
    reverse(sort a)

sonuçlar:

(5) -> [[i,Frazione2SommaReciproci(i)] for i in [1/23,2/23,43/48,8/11,5/121,2020/2064,6745/7604,77/79,732/733]]
   (5)
      1   1      2   1  1      43  1 1  1      8  1 1  1  1
   [[--,[--]], [--,[--,---]], [--,[-,-,--]], [--,[-,-,--,--]],
     23  23     23  12 276     48  2 3 16     11  2 6 22 66
      5    1  1   1      505  1 1 1  1    1
    [---,[--,---,---]], [---,[-,-,-,---,----]],
     121  33 121 363     516  2 3 7 602 1204
     6745  1 1  1  1    1      1       77  1 1 1  1  1   1
    [----,[-,-,--,---,-----,------]], [--,[-,-,-,--,---,---]],
     7604  2 3 19 950 72238 570300     79  2 3 8 79 474 632
     732  1 1 1  1   1    1     1
    [---,[-,-,-,--,----,-----,-----]]]
     733  2 3 7 45 7330 20524 26388
                                                      Type: List List Any
                     Time: 0.08 (IN) + 53.45 (EV) + 3.03 (GC) = 56.57 sec
(6) -> Frazione2SommaReciproci(124547787/123456789456123456)
   (6)
        1            1               1                  1
   [---------, ------------, ----------------, -------------------,
    994074172  347757767307  2764751529594496  1142210063701888512
                      1
    -------------------------------------]
    2531144929865351036156388364636113408
                                              Type: List Fraction Integer
         Time: 0.15 (IN) + 78.30 (EV) + 0.02 (OT) + 5.28 (GC) = 83.75 sec
(7) -> Frazione2SommaReciproci(27538/27539)
         1 1 1  1   1     1       1       1
   (7)  [-,-,-,--,----,-------,-------,-------]
         2 3 7 43 1935 3717765 5204871 7105062
                                              Type: List Fraction Integer
                     Time: 0.05 (IN) + 45.43 (EV) + 2.42 (GC) = 47.90 sec

Görünüşe göre birçok iyi payda, girdi kesir paydasının faktör bölücülerine sahiptir.



0

APL (NARS), 2502 bayt

fdn←{1∧÷⍵}⋄fnm←{1∧⍵}⋄ffl←{m←⎕ct⋄⎕ct←0⋄r←⌊⍵⋄⎕ct←m⋄r}⋄divisori←{a[⍋a←{∪×/¨{0=≢⍵:⊂⍬⋄s,(⊂1⌷⍵),¨s←∇1↓⍵}π⍵}⍵]}

r←frRF w;x;y;c;q;i;j
(x i)←w⋄i-←1⋄y←x⋄r←⍬⋄c←0⋄q←fdn x⋄q←q*20
i+←1
→4×⍳∼1000<c+←1⋄→6
j←÷i⋄→2×⍳j>y⋄→2×⍳(⊂j)∊r⋄r←r,(⊂j)⋄y←y-j⋄→0×⍳y=0⋄→5×⍳1≠fnm y⋄→5×⍳(⊂y)∊r⋄r←r,⊂y⋄→0
→2×⍳∼q<i←ffl ÷y
r←⍬

r←fr2SumF x;n;xv;m;d;zd;z;i;b;c;t;v;j;k;q;w1;w2;t;b1
z←r←⍬⋄→0×⍳1≤ffl x
:if 1=fnm x⋄r←,⊂x⋄→0⋄:endif
n←2⌈ffl÷x⋄xv←m←999⋄d←fdn x⋄zd←divisori d
w1←1000⋄w2←50⋄:if d>1.e10⋄w2←700⋄:elseif d>1.e7⋄w2←600⋄:elseif d>1.e5⋄w2←500⋄:elseif d>1.e3⋄w2←400⋄:elseif d>1.e2⋄w2←100⋄:endif
:for i :in ⍳w1⋄z←∪z∪k/⍨{⍵≥n}¨k←i×zd⋄:if w2<≢z⋄:leave⋄:endif⋄:endfor
z←∪z∪zd⋄z←z[⍋z]
:for i :in z
    :if 0=c←≢b←frRF x i ⋄:continue⋄:endif
    :if      c>m+1      ⋄:continue⋄:endif
    :if      c<m        ⋄m←c⋄r←b⋄xv←⌈/fdn¨b
    :elseif (c=m)∧(m<999)
         :if xv>t←⌈/fdn¨b⋄m←c⋄r←b⋄xv←t⋄:endif
    :endif
    :if c≤2⋄:continue⋄:endif
    v←↑+/1↓b⋄b1←(⊂↑b)
    :for j :in z
       :if 1=c←1+≢q←frRF v j⋄:continue⋄:endif
       :if        b1∊q      ⋄:continue⋄:endif
       q←b1,q
       :if  c<m⋄m←c⋄r←q     ⋄xv←⌈/fdn¨q
       :elseif (c=m)∧(m<999)
           :if xv>t←⌈/fdn¨q⋄m←c⋄r←q⋄xv←t⋄:endif
       :endif
    :endfor
:endfor
→0×⍳1≥≢r⋄r←r[⍋fdn¨r]

Bu problem için AXIOM kodundan APL'ye (benim için) kesir tipini (bignum ...) kullanarak ilk kez yapılan işlem.

103r233, 103/233 fraksiyonu anlamına gelir. Ölçek:

  ⎕fmt fr2SumF 1r23
┌1────┐
│ 1r23│
└~────┘
  ⎕fmt fr2SumF 2r23
┌2──────────┐
│ 1r12 1r276│
└~──────────┘
  ⎕fmt fr2SumF 43r48
┌3────────────┐
│ 1r2 1r3 1r16│
└~────────────┘
  fr2SumF 8r11
1r2 1r6 1r22 1r66 
  fr2SumF 5r121
1r33 1r121 1r363 
  fr2SumF 2020r2064
1r2 1r3 1r7 1r602 1r1204 
  fr2SumF 6745r7604
1r2 1r3 1r19 1r950 1r72238 1r570300 
  fr2SumF 77r79
1r2 1r3 1r8 1r79 1r474 1r632 
  fr2SumF 732r733
1r2 1r3 1r7 1r45 1r7330 1r20524 1r26388 
  fr2SumF 27538r27539
1r2 1r3 1r7 1r43 1r1935 1r3717765 1r5204871 1r7105062 
  fr2SumF 124547787r123456789456123456
1r994074172 1r347757767307 1r2764751529594496 1r1142210063701888512 
  1r2531144929865351036156388364636113408 
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.