Merhaba ve tekrar hoş geldiniz.
Sana bir tane daha vermek istedim. meydan okuma, başka bir görev.
Belli ki bu seferki diziler hakkında olmak.
Nasıl olduğunu öğrenmeni istiyorum. Bir dizinin nasıl kullanılacağı, bir diziye nasıl erişileceği
ve bir dizinin nasıl oluşturulacağı.
Yani bir c programı yazmalısınız 3'ten 100'e kadar olan tüm asal
sayıları bulacak.
Ve biz yapacağız çok verimli bir şekilde.
Bu yüzden biraz kullanacağız Bir dizi kullanmanızı sağlayan
algoritma, ancak çok basit bir program.
Sadece çıktı olarak görüntülenecektir, 3'ten 100'e kadar tüm asal sayılar.
Ve 0 yapmamanın nedeni 3 çünkü bunları sabit kodlayacaksınız,
oldukça basit.
İlk 2 asal sayımızın ilk 2'si 0 olmayan 1 ve 2'dir.
Bu yüzden hiçbir girdi olmayacak bu programa, sadece çıktı.
Ve çıktı şu şekilde olacak her asal sayı tek bir satırda
bir boşlukla ayrılmıştır.
Oldukça basit, 100'e kadar.
Şunları oluşturmanız gerekecek her bir asal
sayıyı üretildikçe saklayacak bir dizi.
İlkini sabit kodlayabilirsiniz Asal sayılar dizisinde
2 ve 3 olan 2 asal sayı.
Yani burada öngördüğüm şey şudur bir dizi yaratırsınız,
adını asal sayılar koyarsınız ve sadece ilk ikisini oraya kodla.
Ve sabit kodlama yapmak önemlidir çünkü onları
bulmak için kullanacağımız algoritma asal sayılar, diğer asal sayılarla
karşılaştırılacak ve Bunu birazdan açıklayacağım.
Döngülerden yararlanmak istiyorsunuz Bu ödev için sadece 100'e kadar olan asal sayıları
bulmanız gerekmektedir.
Bu yüzden hemen şunu yapmalısınız En azından bulduğunuz asal sayıları
görüntülemek için bir döngü öngörün.
Yani bu muhtemelen son olurdu döngüsü, programınızın
sonunda yer alan ve sadece asal sayılar dizisini oluşturur ve içindeki her şeyi
görüntüler.
Şimdi, eğer tüm asalları buluyorsanız 100'e kadar olan sayılar için dizinin boyutunu
değiştirmeniz gerekmeyecektir. Muhtemelen 50'den fazladır çünkü 50'den fazla
başbakan olduğunu sanmıyorum. sayılar, 100'e kadar, ancak bunu ayarlayamayacaksınız
Tam olarak doğru çünkü kaç tane asal sayı olduğunu bilmiyorsunuz.
Yani diyebilirim ki asal sayılar dizisinin boyutunu 100 yapın.
Yani kesinlikle bir döngüye ihtiyacınız var sonunda yazdırmak için.
başka bir döngüye ihtiyacınız olacak asal sayıları bulmaya çalışmak için.
Ve asal sayıları herhangi bir algoritmasını kullanabilirsiniz, ancak
ben olsam şöyle bir şey kullanırdım çünkü bu algoritmayı kullanırsanız dizi kullanmak için daha
fazla nedeniniz olur.
Yani kullanılabilecek kriterler Bir asal
sayıyı tanımlamak için bir sayının asal olduğu kabul edilir önceki herhangi bir asal sayıya eşit
olarak bölünemiyorsa.
Ve daha fazlası da var ama başlangıç
noktası bu.
Ayrıca sadece bakmak istersiniz belirli bir sayıya kadar.
Böylece aşağıdakileri bir En içteki döngüde x koşulu.
Yani tekrar ediyorum, ihtiyacınız olan şey burada muhtemelen
2 döngüye ihtiyacınız olacak.
Üçüncüsünden daha önce bahsetmiştik döngüsünü
kullanarak verileri yazdırabilirsiniz, ancak Bu ödev için 2 döngü var.
Ve tartıştığım algoritma İşte daha gelişmiş bir algoritma.
İşte bu yüzden bunu yapmak istiyorsunuz.
Şimdi eğer asal sayıları bulmak istiyorsanız farklı bir şekilde kullanıyorsanız,
bir dizi kullandığınız sürece sorun yoktur çünkü Bu ödevin
bütün amacı asal sayıları anlamak değil. dizilerin nasıl kullanılacağını anlamak için.
Daha önce yapılan çalışmalara bakarak sizi bir dizi kullanmaya zorlayan
asal sayılar üretir ve her bir asal sayıyı bahsettiğim gibi üretildikçe
saklayın.
Ve yapabileceğiniz diğer yol daha da ideal olanı, çift sayılara bakmak istememenizdir.
Yani her birinden geçiyorsanız 3'ten 100'e kadar bir sayı ve bunun asal olup
olmadığını kontrol ediyorsanız Çift sayıları göz ardı edin çünkü çift sayılar
asla asal olmayacaktır.
Yani en dıştaki döngüde veya en içteki döngüde, asal değerin aşağıdakilerle
bölünebilir olup olmadığını kontrol edebilirsiniz ya da eşit olmadığından emin olun, bunu kontrol edebilir ve atlayabilirsiniz.
Ve sonra bu diğer eksen koşulu en içteki döngüde, p değerinin aşağıdakileri
yapmadığından emin olmaktır asal sayıların karekökünü aşarsa, bu algoritmanın diğer
kısmıdır.
Yani bu tam olarak mantıklı olmayabilir, Ama temelde takip etmenizi istediğim bazı
kriterler bunlar.
Çift sayılar için tüm kontrolleri atlayın, ve sonra algoritma önceki asal
sayıları aramaktır ve aynı zamanda p'nin üretilip üretilmediğini
kontrol etmek için asal sayıların karekökünü aşar çünkü bu başka bir Bir asal
sayıyı kontrol etmenin yolu.
Bu yüzden şu özelliklere sahip olmanız gerekecek Temelde 5'ten
100'e kadar giden bir for döngüsü ve sonra Bunu 2 ile artırın, böylece sadece tek
sayıları ararsınız.
Ve sonra bir iç for döngüsü içinde içeride varsa, 1'den
diğerine kadar gitmek isteyeceksiniz. p değerinin asal alt-I'e bölümü asal alt-I'e eşitten
büyüktür.
Ayrıca muhtemelen sayının asal olmadığından emin olun.
Bu nedenle, bir aylık süreyi aşmak istemezsiniz. belirli bir kontrol yapın ve ardından aşağıdaki durumlarda iç döngüden
çıkmak istersiniz gerçekten bir asal sayı buldun.
Ve böylece kontrol edebileceğiniz yol Mevcut sayınız önceki herhangi bir asal sayıya bölünebiliyorsa
asal sayı, böylece asal sayılar dizisine bakabilirsiniz.
Ve eğer bunun için modül 0'a eşitse, o zaman asal sayınız
yoktur.
Aksi takdirde, eğer bunu yaptıysanız tüm bu döngüdeki
tüm kontrol ve zaten oradan çıktınız Asal alt-I'in asal alt-I'den
büyük olması durumunda karekök ve gerçekten bir asal sayı bulamadıysanız,
bu şu anlama gelir daha sonra bu asal sayıyı asal sayılar dizinize ekleyebilir ve ardından sadece asal
sayılar dizisini yazdırın.
Yani gerçek algoritma benim yaptığım kadar kafa karıştırıcı görünmüyor.
Tekrar söylüyorum, size ile mümkün olduğunca çok sayıda
sözde kod ipucu iç for döngüsündeki döngü.
Ama şu bilgilere erişmeniz gerekecek diziler,
dizileri okuyacaksınız, dizilere bakacaksınız önceki değerleri görmek için bir dizi.
Bu seni dizilere gerçekten aşinayım.
İyi şanslar. çözümü bir sonraki derste çok daha anlamlı olacak,
ancak bunlar gereksinimler ve bazı isabetlerdir.
Teşekkür ederim.