Java'da bir sayının asal olup olmamasını kontrol etmek için sonuç1 ve sonuç2 şeklinde 2 tane değer atadım. Biri float biri integer, her ikisini de sırayla bölen sayısına böldürtüyorum. Bölen 1 den başlayıp kullanıcının girdiği sayı değerine kadar 1 artarak sayıyı 2 kere bölüyor. Sonuç1 ve sonuç2 değerleri aynı olduğu anda ölçer diye atadığım değer 1 artıyor. Bölme işlemleri bittikten sonra eğer ölçer sayısı 3 den küçükse sayı asal oluyor.( 1 sayısı istisna ) Böyle bir sistem oluşturduğumda doğru cevabı bulamıyorum. Kurduğum mantık doğru mudur? Kafamda oluşturduğum mantık; integer veri tipi virgüllü sayıların virgülden sonrasını atıp virgülden öncesine baktığı için asal sayılarda sonuç1 ve sonuç2 değerleri sadece 2 kere eşit olur. O da 1 le ve kendisiyle bölündüğü zaman. Ama dediğim gibi doğru çalışmıyor.

edit.

---------------
import java.util.Scanner;

public class denemeAsalSayı {

public static void main (String[] args)
{
Scanner scan = new Scanner(System.in);

int sayı ;
float sonuç ;
int sonuç2 ;
int bölen;
int ölçer = 0 ;
int durum = 1 ;

bölen =1;

System.out.println("Sayıyı giriniz.");

sayı = scan.nextInt();

for ( durum = 1 ; bölen < sayı + 1 ; bölen ++ )
{

sonuç = sayı / bölen ;
sonuç2 = sayı/ bölen ;

if(sonuç == sonuç2)
{
ölçer ++;
}

}

if(ölçer <=2 || sayı == 1 )
{
System.out.println("Sayı asal!");

}
else
System.out.println("Sayı asal değil.");
}

}

---------------

#akış @ozgurg

BeğenFavori PaylaşYorum yap