Java girilen sayıdan sonraki asal sayı nasıl bulunur?

Zevahir

Kilopat
Katılım
14 Temmuz 2016
Mesajlar
240
Çözümler
1
Daha fazla  
Cinsiyet
Erkek
Girilen bir sayıdan sonraki asal sayısı nasıl bulunur? Örneğin kullanıcı 44 sayısını girdiğinde 47 sayısı nasıl yazdırılır?
 
44'den başlayarak ileriye doğru bir döngü başlatıp ilk asal olarak kabul edilen sayıyı return edersiniz.

Java:
private static int nextPrime(int number)
{
  while (!isPrime(number++));
  return --number;
}

isPrime'ı yazmak da size kalsın ;)
Tehlikeli bir bug var burada, ++ operatoru incerement edilmemis degeri return eder.

Java:
   int i = 10;
    System.out.println(i); // 10
    System.out.println(i++); // 10
    System.out.println(i); // 11

2 yanlis bir dogruyu duzeltmis, cunku -- operatoru de decrement oncesini return edecek ama yine de tehlike :)

Bazi insanlar bu durumun onune gecmek icin "++num" seklinde kullansa da ben parametre olarak hic kullanmam.
 
Bazi insanlar bu durumun onune gecmek için "++num" seklinde kullansa da ben parametre olarak hiç kullanmam.

Java:
 private static int nextPrime(int number)
{
while (!isPrime(++number));
return number;
}

Olarak güncelleyebiliriz.

Bu şekilde bir yapı zaten SRP'ye de aykırı. Sırf daha şekil durduğu için bu şekilde yazdım. Normalde bu tip bir problem için while yerine do-while yapısı ile flag kullanırdım.
 

Geri
Yukarı