Çözüldü EKOK - EBOB - Programlama

Konusu 'Matematik - Geometri' forumundadır ve Honore tarafından 22 Haziran 2018 başlatılmıştır.

Yüklüyor...
  1. Honore

    Honore Yönetici Yönetici

    Mesajlar:
    11.054
    Beğenileri:
    652
    Cinsiyet:
    Bay
    Meslek:
    Müh. (Elk./Bilg.)
    EKOK(A, B, C) = 15 ve EBOB(A, B, C) = 3 ise A·B·C çarpımının kaç farklı değeri olabilir?
    https://www.facebook.com/photo.php?fbid=252476082191424&set=g.1091681720847192&type=1&theater&ifg=1

    Sayılardan bir tanesinin 3 diğer iki sayıda en büyük değerin de 15 olması gerektiği için A = 3 seçilirse B = 3 ve C = 15 veya B = C = 15 için A·B·C = 3·3·15 = 135 yahut
    A·B·C = 3·15·15 = 675 olmak üzere 2 farklı değer alabilir.
    ---
    Programlama ile ilgilenen öğrenci üyeler için Fortran uygulaması:
    [​IMG]
    https://image.ibb.co/j3KkvT/EKOK_EBOB.png

    Program:
    Kod:
    program EKOK_EBOB
    !https://rosettacode.org/wiki/Remove_duplicate_elements#Fortran
    implicit none
    integer :: lcm,gcd,A,B,C,k=0,m,n=0
    integer, allocatable :: ABC(:),res(:)
    
    open (unit = 1, file = "sayilar.txt")
    
    write(1,10)'  A     B    C   A·B·C'
    
    allocate(ABC(15**3))
    
    do A=1,15
       do B=1,15
            do C=1,15
               if(((lcm(A,lcm(B,C)))==15).and.((gcd(A,gcd(B,C)))==3))  then
                    write(1,20)A,'   ',B,'  ',C,'    ',A*B*C
                    n=n+1
                    ABC(n)=A*B*C
                endif
            enddo
       enddo
    enddo
    
    write(6,30)'A*B*C Degerleri'
    do m=1,n
      print*,ABC(m)
    enddo
    
    allocate(res(n))
    
    res(1)=ABC(1)
    
    do n=2,m
       if (any( res == ABC(n)  )) cycle
           k = k + 1
           res(k) = ABC(n)
    enddo
    
    print*,''
    write(*,fmt='(a,i4,a)') 'Farkli A*B*C degerleri: ',k,' adet:'
    
    do n = k,1,-1
       print*,res(n)
    enddo
    print*,''
    
    write(6,30)'sayilar.txt dosyasina bakiniz.'
    
    10 format (a)
    20 format (4(i3,a))
    30 format (a,/)
    
    close (1)
    
    end program
    
    !Modified version of https://rosettacode.org/wiki/Least_common_multiple#Fortran
    integer function lcm(a,b)
    integer:: a,b,gcd
    
    lcm = a*b / gcd(a,b)
    
    end function lcm
    
    function gcd(v, t)
    integer :: gcd
    integer, intent(in) :: v, t
    integer :: c, b, a
    b = t
    a = v
    do
      c = mod(a, b)
      if ( c == 0) exit
         a = b
         b = c
    end do
    
    gcd = b ! abs(b)
    
    end function gcd
     
    : Fortran

  2. Benzer Konular: Programlama
    Forum Başlık Tarih
    Ivır Zıvır Sorular - Sohbet (Trivial Questions - Chat) Ardışık Tek Sayıların Toplamı - Toplam Sembolü - Programlama Pazar 16:39
    Denklem Çözme, Eşitsizlikler, Oran-Orantı, Özdeşlikler ve Çarpanlara Ayırma Tam Sayılar Kümesinde Tek Bilinmeyenli Denklem Çözümü - Programlama 9 Nisan 2026
    Doğal Sayılar,Tam Sayılar,Bölme Bölünebilme,EBOB-EKOK Aritmetik Ortalama - 3 Bilinmeyenli 2 Denklem - Eşitsizlik - Programlama 7 Nisan 2026
    Hareket, Hız, Yüzde, Faiz, Sayısal Yetenek Problemleri ve Genel Kavramlar Hareket ve Hız Problemi - Dairede Merkez Açı - Modüler Aritmetik - Programlama 3 Nisan 2026
    Ivır Zıvır Sorular - Sohbet (Trivial Questions - Chat) Asal Sayılar - Programlama 14 Mart 2026

Sayfayı Paylaş