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-100a-10b; (Onlar Basamağı)
d=s-(1000a+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 🙂
Leave a Reply