Java – Bir dizi içerisindeki indislerin asal olanlarını başka bir diziye aktarma algoritması

Haziran 29, 2020 0 Yazar: alikperislam

package javadersleri;
import java.util.Random;
public class asaldizi {
public static void main(String []args){
int sayi1;
int[] sayilar = new int[500]; // dizinin boyutunu 500 belirledim.
int[] asalsayilar =new int [158]; // 0-1000 arasında 158 adet asal sayı vardır ondan dolayı maximum 158 yaptım.
Random randomsayi = new Random(); // Random oluşturdum.
// 0-1000 arasında 500 adet rastgele sayı oluşturdum ve sayılar dizisinin içine yerleştirdim.
int x=0;
while (x<500){
sayi1=randomsayi.nextInt(1000); // 0-1000 arasında random sayılar
sayilar[x]=sayi1; // sayi1 den gelen tüm sayıları teker teker sayilar dizisine aktardım.
x++;
}
// Sayılar dizisinin elemanlarını for döngüsü yardımıyla ekrana yazdırdım.
System.out.println(“Sayılar dizisinin elemanları :”);
for(int i=0;i<sayilar.length;i++){
System.out.print(sayilar[i]+” “);
}
// sayilar dizisindeki elemanların hepsini teker teker asal mı diye kontrol edip asal olanları asalsayilar
// dizisine aktaracağım
System.out.println(“\nAsal sayılar dizisinin elemanları :”);
for(int i=1;i<sayilar.length;i++){ // 1’den dizinin uzunluğuna kadar gidecek.
int sayac=0; // bir sayac yardımı ile kontrol edeceğim için sayacı=0 diye tanımladım.
for(int j=1;j<=sayilar[i];j++){ //sayilar dizisinde ki tüm elemanları j değerlerine teker teker bölmesi için
//j<sayilar[i] dedim.
if(sayilar[i]%j==0){ // eğer tam bölünüyorsa zaten asal değildir
sayac++; // bundan dolayı sadece sayacı arttırırız.
}
}
if(sayac==2){ // eğer sayı asalsa sadece kendine ve 1’e tam bölünür sayac==2 ise bu durumda demektir yani asaldır.
asalsayilar=sayilar; // sayilar dizisinde ki asal olan tüm elemanları asalsayilar dizisine aktardım.
System.out.print(asalsayilar[i]+” “); // en son asalsayilar dizisini yazdrıdım ve bitti.
}
}
}
}