Kullanııc tarafından girilen 2 sayının ekok'unu bulma algortiması;
clear all clc x=input('Bir tamsayı giriniz: '); y=input('Bir tamsayı giriniz: '); asal_bolen=0; sayac=0; i=2; durum=1; while durum if mod(x,i)==0 || mod(y,i)==0 sayac=sayac+1; asal_bolen(sayac)=i; if mod(x,i)==0 x=x/i; elseif mod(y,i)==0 y=y/i; else x=x/i; y=y/i; end else i=i+1; end if i>x durum=0; end end disp('Asal bölenler: ') disp(asal_bolen) %örnegin 72 sayısı için x_asal_bolen degişkeninin içinde %tutulan sayılar [2 2 2 3 3] %bu kuvvetleri aşagıdaki algoritma ile; %[0 2 3; % 0 3 2] haline getirecegiz. %algoritmanın görevi asal sayı 2'yi 2'inci %idise yazmak ve kuvvetinide alt satırına eklemek %x'in asal bölenlerin kuvvetlerini toplayalım bolen_kuvvet=[0;0]; for i=1:size(asal_bolen,2) bolen_kuvvet(1,asal_bolen(i))=asal_bolen(i); bolen_kuvvet(2,asal_bolen(i))=bolen_kuvvet(2,asal_bolen(i))+1; end %[0 2 3; % 0 3 2] halinde ki matrisimizi %[2 3; % 3 2] haline aşagıdaki algoritma ile getirelim %x_bolen_kuvvet degişkeninin içindeki sıfırları atıyoruz sayac=0; for i=1:size(bolen_kuvvet,2) if bolen_kuvvet(1,i)~=0 sayac=sayac+1; ekok(1,sayac)=bolen_kuvvet(1,i); ekok(2,sayac)=bolen_kuvvet(2,i); end end disp('sadece asal bölen ve kuvvetleri: EKOK ') disp(ekok) %elde ettigimiz ekok'u onluk tabanda görüntüleyelim ekok_sayisi=1; for i=1:size(ekok,2) ekok_sayisi=ekok_sayisi*ekok(1,i)^ekok(2,i); end disp('ekok un onluk tabanda görüntülenmesi: ') disp(ekok_sayisi)
Yorumlar
Yorum Gönder