Çözüldü Pozitif Tam Sayılar - Programlama

Konusu 'Doğal Sayılar,Tam Sayılar,Bölme Bölünebilme,EBOB-EKOK' forumundadır ve Honore tarafından 6 Temmuz 2026 17:58 başlatılmıştır.

Yüklüyor...
  1. Honore

    Honore Yönetici Yönetici

    Mesajlar:
    11.240
    Beğenileri:
    652
    Cinsiyet:
    Bay
    Meslek:
    Müh. (Elk./Bilg.)
    Rakamları farklı ve birbirlerinden de farklı beş pozitif tam sayının toplamı 125 ve bu sayılardan 3 tanesi 32'den büyük ise en büyük sayı en çok kaç olabilir?

    A) 52
    B) 53
    C) 54
    D) 55
    E) 56


    Final Yarıyıl Tatili Çalışma Kitabı, 2003, Sayfa 92, Soru 5 (A, D, E seçeneklerini değiştirdim.)

    x + y + z + t + u = 125
    x = 36, y = 35, z = 34 alındığında toplamları 105 eder ve t + u = 125 - 105 = 20 olacağından önce t = 1 ve u = 19 seçilip
    u = 2 = 19 - 17 değişikliği ile x = 36 + 17 = 53.

    Bilgisayar programlamayla ilgilenen öğrenciler için basit Fortran çözümü:
    [​IMG]
    https://i72.servimg.com/u/f72/19/97/10/39/xyztu_10.png

    Program:
    Kod:
    ! A program that determines the maximum possible value of the largest
    ! among five distinct positive integers, each with different digits.
    ! The integers must satisfy the following conditions: their total sum is 125,
    ! and three of the integers must be greater than 32.
    
    ! Final Yarıyıl Tatili Çalışma Kitabı, 2003, Sayfa 92, Soru 5,
    
    program bes_tam_sayi
    integer x, y, z, t, u
    
    ilk: do x = 100, 1, -1; do y = 100, 1, -1; do z = 100, 1, -1
         do t = 100, 1, -1; do u = 100, 1, -1
      
         ! Beş rakamnın toplamının 125 olduğu kontrol ediliyor.
         if ((x+y+z+t+u) /= 125) cycle
      
         ! Rakamların farklılığı kontrol ediliyor.
         if ((x==y).or.(x==z).or.(x==t).or.(x==u).or. &
             (y==z).or.(y==t).or.(y==u).or.(z==t).or.(z==u).or.(t==u)) cycle
          
         ! C(5, 3) = 10 kombinasyonla 3 rakamnın 32'den büyüklüğü kontrol ediliyor.
         if ((x<=32).and.(y<=32).and.(z<=32)) cycle
         if ((x<=32).and.(y<=32).and.(t<=32)) cycle
         if ((x<=32).and.(y<=32).and.(u<=32)) cycle
         if ((x<=32).and.(z<=32).and.(t<=32)) cycle
         if ((x<=32).and.(t<=32).and.(u<=32)) cycle
         if ((x<=32).and.(t<=32).and.(u<=32)) cycle
         if ((y<=32).and.(z<=32).and.(t<=32)) cycle
         if ((y<=32).and.(z<=32).and.(u<=32)) cycle
         if ((y<=32).and.(t<=32).and.(u<=32)) cycle
         if ((z<=32).and.(t<=32).and.(u<=32)) cycle
      
         ! İki basamaklı sayıların rakamlarının farklılığı kontrol ediliyor
         if ((x >= 10).and.(x <= 99)) then
            if (MOD(x,10) == x / 10) cycle
         endif
      
         if ((y >= 10).and.(y <= 99)) then
            if (MOD(y,10) == y / 10) cycle
         endif
    
         if ((z >= 10).and.(z <= 99)) then
            if (MOD(z,10) == z / 10) cycle
         endif
    
         if ((t >= 10).and.(t <= 99)) then
            if (MOD(t,10) == t / 10) cycle
         endif
    
         if ((u >= 10).and.(u <= 99)) then
            if (MOD(u,10) == u / 10) cycle
         endif
           
         write(6, 10)"x"," y"," z","  t"," u"
         write(6, 20)x,y,z,t,u
         write(6, 30)"En buyuk sayi = ",MAX(x,y,z,t,u); exit ilk
           
    enddo; enddo; enddo; enddo; enddo ilk  
    
    10 format(/,5(3x,a),/)
    20 format(5(3x,i2),/)
    30 format(3x,a,i2)
    
    end
    Google Gemini yapay zekâsının biraz daha hızlı sonuç veren ama bence bu problem için gereğinden fazla kapsamlı yazdığı program:
    [​IMG]
    https://i72.servimg.com/u/f72/19/97/10/39/xyztu_11.png

    Program:
    ! Write a Fortran program that determines the maximum possible value of the
    ! largest among five distinct positive integers, each with different digits.
    ! The integers must satisfy the following conditions: their total sum is 125,
    ! and three of the integers must be greater than 32.

    ! Program Written by Google Gemini AI
    ! One unnecessary and unused variable has been removed by me.
    !
    PROGRAM MaxLargestInteger
    IMPLICIT NONE

    INTEGER :: i, j, k, l, m
    INTEGER :: num(5)
    INTEGER :: max_largest
    INTEGER :: sum_val
    INTEGER :: greater_than_32

    max_largest = -1

    ! Iterate through all possible 5-digit combinations
    DO i = 1, 100
    DO j = i + 1, 100
    DO k = j + 1, 100
    DO l = k + 1, 100
    DO m = l + 1, 100
    num(1) = i
    num(2) = j
    num(3) = k
    num(4) = l
    num(5) = m

    ! Condition 1: Total sum is 125
    sum_val = i + j + k + l + m
    IF (sum_val .NE. 125) CYCLE

    ! Condition 2: Exactly three integers greater than 32
    greater_than_32 = 0
    IF (i .GT. 32) greater_than_32 = greater_than_32 + 1
    IF (j .GT. 32) greater_than_32 = greater_than_32 + 1
    IF (k .GT. 32) greater_than_32 = greater_than_32 + 1
    IF (l .GT. 32) greater_than_32 = greater_than_32 + 1
    IF (m .GT. 32) greater_than_32 = greater_than_32 + 1

    IF (greater_than_32 .NE. 3) CYCLE

    ! Condition 3: Check if each integer has different digits
    IF (.NOT. has_different_digits(i) .OR. &
    .NOT. has_different_digits(j) .OR. &
    .NOT. has_different_digits(k) .OR. &
    .NOT. has_different_digits(l) .OR. &
    .NOT. has_different_digits(m)) CYCLE

    ! Update maximum possible largest value
    IF (m .GT. max_largest) THEN
    max_largest = m
    END IF

    END DO
    END DO
    END DO
    END DO
    END DO

    ! Output the result
    PRINT *, "The maximum possible value of the largest integer is: ", max_largest

    CONTAINS

    ! Function to check if a positive integer has all different digits
    LOGICAL FUNCTION has_different_digits(n)
    INTEGER, INTENT(IN) :: n
    INTEGER :: temp, digit
    LOGICAL :: digits(0:9)

    digits = .FALSE.
    temp = n

    DO WHILE (temp .GT. 0)
    digit = MOD(temp, 10)
    IF (digits(digit)) THEN
    has_different_digits = .FALSE.
    RETURN
    END IF
    digits(digit) = .TRUE.
    temp = temp / 10
    END DO

    has_different_digits = .TRUE.
    END FUNCTION has_different_digits

    END PROGRAM MaxLargestInteger
     
    : Fortran

  2. Benzer Konular: Pozitif Sayılar
    Forum Başlık Tarih
    Ivır Zıvır Sorular - Sohbet (Trivial Questions - Chat) Pozitif Tam Sayılarla Akıldan Denklem Çözümü Perşembe 10:22
    Ivır Zıvır Sorular - Sohbet (Trivial Questions - Chat) Pozitif Tam Sayılarda Aritmetik Ortalama 8 Nisan 2026
    Ivır Zıvır Sorular - Sohbet (Trivial Questions - Chat) Pozitif Tam Sayılar - Programlama 1 Mart 2026
    Denklem Çözme, Eşitsizlikler, Oran-Orantı, Özdeşlikler ve Çarpanlara Ayırma Sayı Doğrusu (x Ekseninin Pozitif Kısmı) - Tam Sayılar Kümesinde Eşitsizlik - 5 ile Bölünebilme 25 Ağustos 2025
    Doğal Sayılar,Tam Sayılar,Bölme Bölünebilme,EBOB-EKOK Pozitif Tam Bölenler - Asal Sayılar 3 Temmuz 2025

Sayfayı Paylaş