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

Konusu 'Doğal Sayılar,Tam Sayılar,Bölme Bölünebilme,EBOB-EKOK' forumundadır ve Cem tarafından 29 Mart 2014 başlatılmıştır.

Yüklüyor...
  1. Cem

    Cem Yönetici Yönetici

    Mesajlar:
    3.385
    Beğenileri:
    1.354
    Bir soru:
    "ABCD9" beş basamaklısının 56 ile bölümünden kalan iki basamaklı sayı olduğuna göre, bu bölümden kalan kaç farklı sayı bulunabilir?
    e.songül ve Honore bunu beğendi.
     
    : Fortran

  2. Benzer Konular: Basamak Analizi
    Forum Başlık Tarih
    Doğal Sayılar,Tam Sayılar,Bölme Bölünebilme,EBOB-EKOK Basamak Analizi - Eşitsizlik - Programlama 11 Temmuz 2026
    Rasyonel ve Ondalıklı Sayılar, Üslü Sayılar, Köklü Sayılar, Mutlak Değer, Taban Aritmetiği Üstel ve Ondalıklı Sayılar - Basamak Analizi - Programlama 30 Haziran 2026
    Üniversitelerin Sayısal Bölümlerini Hedefleyen LGS Öğrencileri Doğal Sayılarda Basamak Analizi - Programlama 9 Haziran 2026
    Ivır Zıvır Sorular - Sohbet (Trivial Questions - Chat) Rakamlar ve Doğal Sayılar - Basamak Analizi - Programlama 10 Mayıs 2026
    Ivır Zıvır Sorular - Sohbet (Trivial Questions - Chat) Sayılarda Basamak Analizi - Programlama 17 Aralık 2025

  3. Bora

    Bora Yönetici Yönetici

    Mesajlar:
    2.131
    Beğenileri:
    581
    Meslek:
    Öğretmen
    10009 un 56 ile bölümünden kalan 41, 10019 un 56 ile bölümünden kalan 51
    41,51,61=5
    15,25,35,45,55,65=9
    19,29,39,49,59=3
    13,23,33,43,53.63=7
    17,27,37,47,57=1
    11,21,31,41 başa döndü
    Yani: 41,51,15,25,35,45,55,19,29,39,49,13,23,33,43,53,17,27,37,47,11,21,31
    23 tane buldum ben.
    e.songül, Honore ve Cem bunu beğendi.
  4. Cem

    Cem Yönetici Yönetici

    Mesajlar:
    3.385
    Beğenileri:
    1.354
    Çok basit bir çözümü var:
    ABCD9 sayısı tektir. 56 sayısının hangi sayı ile çarparsak çarpalım çifttir. Dolayısyla "ABCD9 - Çift sayı = Tek sayı" edecektir. Demek ki kalanlarımız tek'tir. Dolayısıyla böylesi bir bölmede değişik (değişen) her ABCD9 sayısına nisbetle 11 ilâ 55 arasındaki (tek) tüm kalan sayıları illâ ki bulunacaktır veya bulmak mümkün olacaktır. Aşikâr.
    Çok daha üst dilden bir çözüm de şu:
    56=2.4.7 ve (2,4,7)=1 (aralarında asal) olduğundan 2 çarpanı için incelendiğinde, ABCD9 sayısının 2 ile bölümünde kalan 1 olduğundan, 2 modunda 56'ya kadar tarandığında 11 ilâ 55 sayıları (kalanları) görülebilmektedir.

    Kezâ 4 çarpanı için son iki basamak inceleneceğinden (D9), D=0 ve ya D=1 için bakılır, diğer tek ve çift rakamlar için de aynı şey (kalanlar) sözkonusu olacaktır:
    D=0 ise 09'un 4 ile bölümünden kalan 1 olduğundna 4 modunda kalanlar; 1,5,9,13,17,21,25,29,33,37,41,45,49,53
    D=1 ise 19'un 4 ile bölümünden kalan 3 olduğundan 4 modunda kalanlar; 3,7,11,15,19,23,27,31,35,39,43,47,51,55 biçiminde bulunur.

    Dolayısıyla 2.4.7'deki 2 ve 4 çarpanları için sayıının ortak kalanlar kümesi {11,13,15, ......., 53,55} olduğundan, 7 çarpanı için 7 ile bölümden kalanlar kümesi de buna eşit olacaktır veya bu da incelendiğinde bu "11-55" kümesine eşit olduğu görülecektir. Fakat bu 7 için beş basamaklıyı incelemek zor ve uzun olduğundan artık buna gerek yoktur. 2 ve 4'ün incelenmesinden çıkan küme bize yetecektir.
    Cevap={11, 13, 15, ..., 53, 55}'dir.
    Son düzenleme: 5 Nisan 2014
    e.songül, Bora ve Honore bunu beğendi.
  5. Honore

    Honore Yönetici Yönetici

    Mesajlar:
    11.435
    Beğenileri:
    652
    Cinsiyet:
    Bay
    Meslek:
    Müh. (Elk./Bilg.)
    Bilgisayar programlama (kodlama) ile ilgilenen öğrenciler için Fortran çözümü:
    [​IMG]
    https://i72.servimg.com/u/f72/19/97/10/39/kalanl11.png

    Program:
    Kod:
    ! "ABCD9" beş basamaklısının 56 ile bölümünden kalan iki basamaklı sayı
    ! olduğuna göre, bu bölümden kalan kaç farklı sayı bulunabilir?
    program kalanlar
    implicit none
    integer :: ABCD9,boyut=0,i=0,j,k=0,p,temp, kalan
    integer, allocatable :: CD(:), res(:)
    
    do ABCD9 = 10000, 99999
       kalan = MOD(ABCD9,56)
       if (kalan < 10) cycle
       boyut=boyut+1
    enddo
    
    allocate(CD(boyut))
    
    do ABCD9 = 10000, 99999
       kalan = MOD(ABCD9,56)
       if (kalan < 10) cycle
       if (MOD(kalan,2) == 0) cycle
       i = i + 1; CD(i) = kalan
    enddo
    
    allocate(res(size(CD)))
    
    res(1) = CD(1)
    
    do j=1,i
       if (any(res == CD(j))) cycle
       k = k + 1
       res(k) = CD(k)
    enddo
    
    print*,''
    write(*,fmt='(a,i3,a,/)') 'Farkli kalanlarin sayisi:',k,' adet.'
    
    do j=1,k-1
       do p=j+1,k
          if (res(j) < res(p)) cycle
          temp=res(j)
          res(j)=res(p)
          res(p)=temp
        enddo
    enddo
    
    do j=1,k
       write(6,10)j,"    ",res(j)  
    enddo
    
    deallocate (CD, res)
    
    10 format(2(i3,a))
    
    end program

Sayfayı Paylaş