Ana içeriğe atla

Matlab Sayının Asal Çarpanlarını Bulma

Kullanıcı tarafından girilen sayının asal çarpanlarını bulma algoritması;

clc
clear all

x=input('Bir sayı giriniz: ');
%kullanıcının x için 72 degerini girdigini varsayarak
%aşagıdaki döngüde yapılan işlemleri anlatacagım

% x sayısının asal bölen sayısını bulalım

x_asal_bolen=0;  
%asal bölenlerimizi bu degişkende dizi olarak tutacağız
sayac=0;  
%sayac ile dizinin indisini oluşturduk
i=2; 
% Bir sayıyı 2'den başlayarak böleriz
durum=1;
%while döngüsünden çıkmak için koşulumuzu oluşturacak
while durum
    if mod(x,i)==0 % x, i'ye tam bölünür mü ?
        sayac=sayac+1; %dizinin indisi olan sayacı 1 artır
        x_asal_bolen(sayac)=i; % i'yi asal bölen içine yaz
        x=x/i; %sayımız i'ye bölünerek küçüldü
    else
        i=i+1; % örnegin sayımız i=2 için bölünmüyorsa
               % i=3'e bölünüp bölğnmedigini bulmak için
               % i'yi 1 artırdık.
    end
    if i>x
        durum=0;
    end
end

%ö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
x_bolen_kuvvet=[0;0];
for i=1:size(x_asal_bolen,2)
    x_bolen_kuvvet(1,x_asal_bolen(i))=x_asal_bolen(i);
    x_bolen_kuvvet(2,x_asal_bolen(i))=x_bolen_kuvvet(2,x_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(x_bolen_kuvvet,2)
    if x_bolen_kuvvet(1,i)~=0
        sayac=sayac+1;
        x_asal(1,sayac)=x_bolen_kuvvet(1,i);
        x_asal(2,sayac)=x_bolen_kuvvet(2,i);
    end
end


disp(x_asal)

Yorumlar

Bu blogdaki popüler yayınlar

Matlab Operatörler

Matematiksel operatörler: +  Toplama –  Çıkarma *  Çarpma /  Bölme ^  Üst alma .* Elemanter çarpım ./  Elemanter bölme .^  Elemanter üst alma a+b  Boyutları aynı olan a ve b matrisini toplar. a-b  Boyutları aynı olan a ve b matrislerinin farkını alır. a*b  Sütun sayısı m olan a matrisiyle satır sayısı m olan b matrisini çarpar. a/b  b düzenli kare bir matrisse (determinantı sıfırdan farklıysa), aynı boyutlu a matrisiyle; a*inv(b)işlemini yapar. a.*b  Boyutları aynı olan a ve b matrislerinin elemanlarını karşılıklı olarak çarpar. a./b  Boyutları aynı olan a ve b matrislerinin elemanlarını karşılıklı oranlar. sqrt  Kök alma abs  Mutlak değer rats  Kesirli gösterim Mantıksal operatörler: &  Ve |  Veya ~  Değil /  Bölme Karar operatörleri: >  Büyüktür <  Küçüktür >=  Büyük eşittir <=  Küçük eşittir ==  Eşittir ~= ...

Matlab Asal Sayı Buldurma

Klavyeden girilen bir tamsayının, asal sayı olup olmadıgını veren algoritma kodları: Asal sayı tanımı; "1 ve kendisinden başka tamsayıya, tam bölünemeyen tamsayılara; asal sayı" denir. Girilen tamsayının asal olup olmadıgının tespiti için; tanımdan hareketle 1'den tamsayıya kadar döngü açılır ve kaç kere tam bölündügü hesaplanır. Eğer 2 kere tam bölünmüşse girilen sayı asal sayıdır.  Matlab kodları: a=input( 'Tamsayı giriniz: ' );   %kullanıcıdan tam sayı girilmesi isteniyor disp( '   ' );                                 %bir miktar boşluk bırakılıyor s=0;                                         %s degişkeni sayının kaç defa tam bölündügünü tutması için                                     ...