Java’da Asal Sayı Problemi

Bu yazıda java programlama diliyle, iki sayı arasındaki(1-100) asal sayıları bulan programı paylaşacağım. Umarım faydalı bir paylaşım olur.


package asalsayi;
 
public class Main {
 
public static void main(String[] args) {
int i,j,a=0;
for(i=100;i>1;i--){
for(j=i-1;j>1;j--){
if(i%j!=0)a=1;
else{
 a=0;
break;
 }
if(j==2&&a==1)System.out.println("Bu sayi asal: "+i);
 }}}}

Bu programın bir benzerinin C dilinde yazılmış halini buradan bulabilirsiniz.

Bu kodda dikkat etmemiz gereken kısım, iç içe for kullanımıdır. For döngüsünün sınırlarının nereden başlayıp nerede bittiği çok önemlidir. for(j=i-1;j>1;j–) kısmında j’nin i-1′den başlamasının mantığı asal sayının sadece kendine ve 1′e bölünebiliyor olmasından gelmektedir.

Yener Yıldız

Bilgisayar mühendisliği okuyorum, zaman buldukça yazıyorum. Ayrıntılar için hakkımda sayfasına bakabilirsiniz.

Yazara ait tüm yazılar →

6 Comments 1 Tweet

Yorum yap

9 Yorum.

  1. Bu yazıda java programlama diliyle, iki sayı arasındaki(1-100) asal sayıları bulan programı paylaşacağım. Umarım faydalı bir paylaşım olur.

    Bu yorum şu adresten gelmiştir: FriendFeed

  2. complexity: bigO(n^2).. daha kötüsü olamazdı :D

    Bu yorum şu adresten gelmiştir: FriendFeed

  3. karmaşıklığı biraz fazla ama olsun, yavaş yavaş geliştiririz :D

    Bu yorum şu adresten gelmiştir: FriendFeed

  4. #include int main(){int basePrimes[] = {2,3,5,7};int endUp=100;int i=2;for(;i

    Bu yorum şu adresten gelmiştir: FriendFeed

  5. Sinan Duman

    Merhaba Kardeşim,
    Kanımca erastotanes kalburu hakkında bir kaç makale okumuşsun ama uygulamada onu tam gerçekleştirmemişsin.
    Diyelim ki 1 ile 100 arası asal sayıları bulacaksın. O zaman 100 den küçük ve eşit, karesi 100 en yakın sayıyı bulacaksın, o sayı nedir: 10. 10 asal mıdır değildir. Peki o zaman 10 dan küçük asal sayılar nelerdir: 2,3,5,7.
    Bu sayılara bölünen sayılar da asal değildir. Bunları şarta eklediğin zaman iki tane iç içe döngü koymak yerine 1 tane döngü ve asal sayıların kontrolü ile işlemi gerçekleştirirsin. Bundan hareketle, 10000 den küçük asal sayıları nasıl bulursun, tabi ki bu yazdığın programda bulunan asal sayıları bir integer array’a atarak. Örnek programı yazıyorum. Dilerim işine yarar. Kolay gelsin.

    #include

    int
    main(){
    int basePrimes[]={2,3,5,7};
    int startUp=10;
    int endUp=100;
    int prime,i,j;
    for(i=startUp; i < endUp; i++){
    prime=1;
    j=0;
    while (basePrimes[j]){
    if (i % basePrimes[j++]==0){
    prime=0;
    break;
    }
    }
    if(prime)
    printf("Bu sayi asal: %d\n", i);
    }
    return 0;
    }

  6. Bilgi verme amacıyla bloguna yorumumu ekledim.

    Bu yorum şu adresten gelmiştir: FriendFeed

  7. Teşekkürler, bilgi paylaşıldıkça değerlidir :)

    Bu yorum şu adresten gelmiştir: FriendFeed

  8. Merhaba,
    Önerdiğiniz çözüm gerçekten güzel, teşekkür ederim bunu paylaştığınız için. Elinize sağlık.

  9. kullanıcının girdiği 3 adet sayıdan asal olanları ve bu 3 sayının 16 ile bölümünden kalanın ikilik taban karşılığını bulan java programını hazırlamam gerekiyo bana yardım edebilecek olan var mı? :cry:

Yorum Yap


[ Ctrl + Enter ]

Additional comments powered by BackType