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.

(3 oy, ortalama: 4,67 / 5)

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
complexity: bigO(n^2).. daha kötüsü olamazdı
Bu yorum şu adresten gelmiştir: FriendFeed
karmaşıklığı biraz fazla ama olsun, yavaş yavaş geliştiririz
Bu yorum şu adresten gelmiştir: FriendFeed
#include int main(){int basePrimes[] = {2,3,5,7};int endUp=100;int i=2;for(;i
Bu yorum şu adresten gelmiştir: FriendFeed
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;
}
Bilgi verme amacıyla bloguna yorumumu ekledim.
Bu yorum şu adresten gelmiştir: FriendFeed
Teşekkürler, bilgi paylaşıldıkça değerlidir
Bu yorum şu adresten gelmiştir: FriendFeed
Merhaba,
Önerdiğiniz çözüm gerçekten güzel, teşekkür ederim bunu paylaştığınız için. Elinize sağlık.
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ı?