Skip to content

Java Soru Çözümleri 11 – Asal Sayı Uygulamaları

Merhabalar.

Bugünkü sorumuz asal sayılarla alakalı. Ancak bu asal sayılarımız belli koşulları sağladığı taktirde bizim istediğimiz aralıkta yer alacak.

Sorumuz şu şekilde:

 

Bir S asal sayısı var. Bu sayı a1000+b100+c10+d ‘ye eşittir. Ayrıca a+b+c+d=20 ve ab=72’dir. Buna göre S sayısının alacağı değerleri ve aldığı değerlerin asal olup olmadığını yazdıran Java programını yazacağız.

Haydi başlayalım.

 

public class uygulama2 {

    public static void main(String[] args) {
        // TODO Auto-generated method stub

        
        
             for(int s=1000;s<10000;s++){
                int toplam,carpim,sayac=1;
                int a,b,c,d;  
                 a=s/1000;
                 b=s/100-10*a;
                 c=s/10-100*a-10*b;
                 d=s-(1000*a+100*b+10*c);
        
                        toplam=a+b+c+d;
                        carpim=a*d;
                        
                        if(toplam==20 && carpim==72){
                        
                            for(int i=2;i<s;i++){
                                sayac=1;
                                if(s % i == 0){
                                    sayac=0;
                                    System.out.println(s+ " Sayısı Asal Sayıdır ve Probleme Uymaktadır.");                                  
                                    break;
                                
                                }                       
                                
                                
                            }if(sayac==1){
                            System.out.println(s+ " Sayısı Asal Sayı Değildir, Dolayısıyla Probleme Uymamaktadır.");
                            }
                        }
            
            
            
        }
        
    }

}

  • İlk olarak for döngüsüyle inceleyeceğimiz değer aralığını giriyoruz. Soruda verilene göre sayımız 4 basamaklı. Bu yüzden for döngümüzü 1000’den başlattık.
    for(int  s=1000; s<10000; s++)

 

  • Toplam, çarpım işlemlerini yapabilmek için toplam ve carpim adını verdiğimiz değişkenlerimizi integer olarak tanımlıyoruz.
  • Sayaç adını verdiğimiz değişkenimizi de integer tipinde tanımlayıp değerini 1’e eşitliyoruz. Daha sonra bu değişkenimizi asal sayıları ayırabilmek için kullanacağız.
  • Basamak değerlerini bulabilmek için gerekli kodları oluşturuyoruz.

             a=s/1000; (Binler Basamağı)                               
             b=s/100-10a; (Yüzler Basamağı)                         
             c=s/10-100
a-10b; (Onlar Basamağı)                       
             d=s-(1000
a+100b+10c); (Birler Basamağı)

 

  • Toplam ve çarpımı hesaplamak için gereken kodları oluşturuyoruz. 

             toplam=a+b+c+d;
             carpim=a*d;

 

  • Eğer toplam değeri 20’ye eşit ve carpim değeri de 72’ye eşitse sayımızın asal olup olmama durumunu inceleyeceğiz.

 

            if(toplam==20 && carpim==72)

 

  • For döngüsü oluşturuyoruz. Bu sayede sayımızın asal olup olmama durumuna bakabileceğiz.2’den başlayarak s’ye kadar olan sayılara bakalım ve sayaç değerini 1’e eşitleyelim.

 

          for(int i=2 ; i<s ; i++)                                                                                                                                                             sayac=1

 

  • Eğer s sayısı i sayısına tam bölünüyorsa, sayac değerini 0’a eşitleyelim ve konsola s sayısının asal olduğunu yazdıralım.

 

          if(s % i == 0){                                   
          sayac=0;              

                           
          System.out.println (s +  ” Sayısı Asal Sayıdır ve Probleme Uymaktadır.”);
          break;

 

  • Eğer sayac 1’e eşitse konsola sayının asal olmadığını yazalım.

 

           if(sayac==1){
           System.out.println ( s+ ” Sayısı Asal Sayı Değildir, Dolayısıyla Probleme                  Uymamaktadır “); 

 

       Böylece sorumuzu tamamlamış olduk. Çıktımız:

 

 

 

       Şimdilik bu kadar 🙂 Bir sonraki yazımızda görüşmek üzere 🙂

 

 


			

1 Comment »

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: