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 ~= ...

2. Dereceden 1 Bilinmeyenli Denklemin Köklerini Buldurma - MATLAB

2. dereceden bir bilinmeyenli denklemin köklerini buldurmak için denklemin bilinmeyen katsayılarına ve sabit sayısına ihtiyacımız var. Kök buldurma denklemi aşagıdaki gibidir. Yapacagımız işlemleri daha iyi anlamanız için akış diyagramı aşagıda ki fotoğrafta görülmektedir Akış diyagramından yola çıkarak matlab kodlarıını adım adım yazalım. a=input(‘a= ’); %x^2nin katsayısını kullanıcıdan girmesini istiyoruz b=input(‘a= ’); %x in katsayısını kullanıcıdan girmesini istiyoruz c=input(‘a= ’); %c nin yani sabit sayının kullanıcıdan girmesini istiyoruz disp (‘ ’); %ekrana birazcık boşluk bırakıyoruz d=b * b - 4 * a * c; if (d > 0 ) disp (‘Gerçek İki Kök Vardır’); %ekrana kök bulunduğunu yazıyoruz x1=( - b - sqrt (d)) / ( 2 * a); %birinci kökü buluyoruz x2=( - b + sqrt (d)) / ( 2 * a); %ikinci kökü buluyoruz [yz,ht]=sprintf(‘ 1. Kök: %0.5f’,x1); disp(yz); %birinci kökü ekrana formatlı olarak yazdırıyoruz [yz,ht]=spri...