Çözüldü Bölünebilme - Programlama

Konusu 'Matematik - Geometri' forumundadır ve vanGogh tarafından 19 Mart 2009 başlatılmıştır.

Yüklüyor...
  1. vanGogh

    vanGogh Yeni Üye

    Mesajlar:
    183
    Beğenileri:
    5
    a6b üç basamaklı sayısı 12 ile tam bölünebilen bir doğal sayı olduğuna göre a'nın alabileceği kaç farklı değer vardır?

    A) 10
    B) 9
    C) 8
    D) 7
    E) 6
    Son düzenleyen: Moderatör: 26 Haziran 2025
     
    : Fortran

  2. Benzer Konular: Bölünebilme Programlama
    Forum Başlık Tarih
    Ivır Zıvır Sorular - Sohbet (Trivial Questions - Chat) Altı İle Tam Bölünebilme - Programlama 15 Haziran 2026
    Mantık,Kümeler,Bağıntı ve Fonksiyon,İşlem ve Moduler Aritmetik Modüler Aritmetik - Bölünebilme - Programlama 13 Şubat 2026
    Doğal Sayılar,Tam Sayılar,Bölme Bölünebilme,EBOB-EKOK İki Basamaklı Doğal Sayılarda Bölünebilme - Programlama 26 Aralık 2025
    Polinomlar, Permütasyon, Kombinasyon, Olasılık ve Binom Açılımı İkinci Derece Polinom - Tam Sayılarda Bölünebilme - Programlama 26 Eylül 2025
    Doğal Sayılar,Tam Sayılar,Bölme Bölünebilme,EBOB-EKOK 9 İle Kalansız Bölünebilme - Basamak Analizi - Programlama 28 Mayıs 2025

  3. bayındır

    bayındır Yeni Üye

    Mesajlar:
    288
    Beğenileri:
    37
    a6b 12 ile tam bölünüyorsa aynı zamanda 3 ve 4 ile tam bölünür
    4 ile bölünebilme kuralı gereği 6b sayısı 4 ün katı olmalıdır yani b=0,4,8 değerlerini alır
    b=0 için
    a60 3 ile bölünmesi için a=3,6,9 olur
    b=4 için
    a64 3 ile bölünmesi için a=2,5,8 olur
    b=8 için
    a68 3 ile bölünmesi için a=1,4,7 olur
    yani a 9 farklı değer alır
    Honore bunu beğendi.
  4. Honore

    Honore Yönetici Yönetici

    Mesajlar:
    11.442
    Beğenileri:
    652
    Cinsiyet:
    Bay
    Meslek:
    Müh. (Elk./Bilg.)
    Bilgisayar programlama (kodlama) ile ilgilenen öğrenciler için https://codingfleet.com/code-generator/fortran/ adresindeki yapay zekânın
    "If the three-digit natural number a6b is divisible by 12, write a Fortran program to list the different values to be taken by the digit a." sorusuna verdiği çok açıklamalı Fortran çözümü:
    [​IMG]
    https://i72.servimg.com/u/f72/19/97/10/39/coding10.png

    Here's a Fortran program to find the different values for the digit 'a' in a three-digit number a6b such that the number is divisible by 12.
    A number a6b can be written as 100*a + 60 + b. For a number to be divisible by 12, it must be divisible by both 3 and 4.
    Divisibility by 4: The number formed by the last two digits (6b) must be divisible by 4. Possible values for 6b that are divisible by 4 are 60, 64, 68. So, b can be 0, 4, or 8.
    Divisibility by 3: The sum of the digits (a + 6 + b) must be divisible by 3.
    The program will iterate through all possible values for a (from 1 to 9, as it's a three-digit number) and b (from 0 to 9). For each combination, it forms the number a6b and checks if it's divisible by 12. It then collects the unique a values that satisfy the condition.

    Program:
    Kod:
    PROGRAM FindAValues
      IMPLICIT NONE
    
      INTEGER :: a, b, number
      ! An array to keep track of unique 'a' values found.
      ! found_a(i) will be .TRUE. if 'i' is a possible value for 'a'.
      LOGICAL, DIMENSION(1:9) :: found_a
      INTEGER :: i
    
      ! Initialize all entries in found_a to .FALSE.
      DO i = 1, 9
        found_a(i) = .FALSE.
      END DO
    
      WRITE(*,*) 'Searching for values of ''a'' in a6b divisible by 12...'
    
      ! Loop for 'a' (the first digit, must be between 1 and 9)
      DO a = 1, 9
        ! Loop for 'b' (the last digit, must be between 0 and 9)
        DO b = 0, 9
          ! Construct the three-digit number a6b
          number = a * 100 + 6 * 10 + b
    
          ! Check if the number is divisible by 12
          IF (MOD(number, 12) == 0) THEN
            ! If divisible, mark this 'a' value as found
            ! We only need to mark it once, so check if it's already .TRUE.
            IF (.NOT. found_a(a)) THEN
              found_a(a) = .TRUE.
              ! Optionally, print the full number for verification
              ! WRITE(*,*) 'Found number: ', number, ' (a=', a, ', b=', b, ')'
            END IF
          END IF
        END DO
      END DO
    
      ! Print the different values of 'a' that were found
      WRITE(*,*) '' ! New line for better formatting
      WRITE(*,*) 'The different values to be taken by the digit ''a'' are:'
      DO i = 1, 9
        IF (found_a(i)) THEN
          WRITE(*,*) i
        END IF
      END DO
    
    END PROGRAM FindAValues
    Explanation:
    1. PROGRAM FindAValues: Declares the start of the Fortran program.
    2. IMPLICIT NONE: A good practice in Fortran to prevent implicit type declarations, which can lead to errors. All variables must be explicitly declared.
    3. INTEGER :: a, b, number: Declares integer variables a, b, and number.
    4. LOGICAL, DIMENSION(1:9) :: found_a: Declares a logical array found_a of size 9. found_a(i) will be TRUE if i is a possible value for a, and FALSE otherwise. This helps in collecting unique a values.
    5. Initialization Loop: The first DO i = 1, 9 loop initializes all elements of found_a to .FALSE..
    6. Outer Loop (DO a = 1, 9): This loop iterates through all possible values for the digit a. Since a6b is a three-digit number, a cannot be 0.
    7. Inner Loop (DO b = 0, 9): This loop iterates through all possible values for the digit b.
    8. number = a * 100 + 6 * 10 + b: Constructs the three-digit number a6b based on the current a and b values.
    9. IF (MOD(number, 12) == 0) THEN: This is the core condition check. MOD(number, 12) calculates the remainder when number is divided by 12. If the remainder is 0, the number is divisible by 12.
    10. IF (.NOT. found_a(a)) THEN ... END IF: If a number a6b is found to be divisible by 12, and the current a value hasn't been recorded yet (.NOT. found_a(a)), then found_a(a) is set to .TRUE.. This ensures each unique a value is recorded only once.
    11. Printing Results: After checking all combinations, the program iterates through found_a from 1 to 9. If found_a(i) is .TRUE., it means i is a valid digit for a, and it's printed.

Sayfayı Paylaş