Eski 07-05-04, 00:53 #1
aRiTmEtİk aRiTmEtİk çevrimdışı
Question Girilen sayi asal mı?

Girilen sayının asal olup olmadığını bulan bir program yapmak istiyorum(c de)
Ancak bazı sorularım var:
1-)a=sayi%i
burada a ya sayi nin i ye bölümünden kalani mi atıyorum? (Yani doğrumu yapıyorum)
2-)for ile başlatılan döngü döngü sürerken nasıl sonlandırılır.
Örneğin döngü içinde eğer a değişkeninde 0 değeri oluşursa;
if(a=0) komutuyla döngüyü sonlandırmak istersem bunu nasıl yaparım?
3-)Bu programda şu mantığım doğru mu?
b adli bir integer degisken tanımlıyorum sıfır degeri veriyorum.
Sayiyi giriyorum(sayi degiskenine kayıtlı değeri)
for(i=1;i<sayi;i++)
ile döngü başlatıyorum.
Döngü içinde a=sayi%i yapıp a ya kalanı atıyorum.
if(a=0) geçerli olursa döngü bitiyor b=1 oluyor ve program sayi asal degil diyor.
Döngünün dışında if(b!=1) satırı var.Doğru olursa program sayi asal dior.

Sorularıma cevap verirseniz sevinirm(Her zaman söyleriz.Ama cidden sevinirm.Ah siz cevaplamazsanız kim cevaplar başka.Teşekkür ederim.)
  Alıntı Yaparak CevaplaAlıntı Yaparak Cevapla
Eski 07-05-04, 05:36 #2
HoPPaLa0101 HoPPaLa0101 çevrimdışı
Varsayılan Cvp: Girilen sayi asal mı?

asal sayıyı bulmak icin asal sayının en temel ozelligini kullanmak gerek. bir sayı kendisi ve 1 den baska hic bir sayıya bolunmuyorsa(ve de 1 den buyukse) asaldır. bunu asagıdaki ko da gosterdim. kolaylık olsun diye baska bir fonksiyon tanımladım, sorun olursa fonksiyonun ,icindekini maine kopyalayın uygun bir sekilde.

/******************KOD****************
#include<math.h>
#include<stdio.h>

int isprime(int p)
{
int i;
for(i = 2; i <= sqrt(p);i++)
if(p % i == 0)
return 0;
return 1;
}

int main()
{
int denek;
printf("sayıyı gir:\n");
scanf("%d", &denek);
if(denek<=1) printf("asal degil\n");
else
{
if(isprime(denek)) printf("asal\n");
else printf("asal degil\n");
}
return 0;
}
/*************KOD*****************

algoritman mantıklı, gerci efficiency den kaybediyor, cunku 2 den o sayının kokune kadar araman yeterli (sqrt() fonksiyonu).
kontrol icinde a=0 degil a==0 ı kullanman gerek.
kolay gelsin.
  Alıntı Yaparak CevaplaAlıntı Yaparak Cevapla
Eski 07-05-04, 20:54 #3
haldunuraz haldunuraz çevrimdışı
Varsayılan Cvp: Girilen sayi asal mı?

buna ek olarak hoppalanın da dediği gibi kendisine ve 1 e bölünen sayılar asaldır. dolayısıyla
bir for içinde sayıyı kendisine kadar böldürürsün
mesela
sayaç=0;
for(i=2;i=birilen_sayı;i++)
sonuç=girilen_sayı/i;
if(sonuç!=0 || sonuç!=1)
{
sayaç=sayaç+1;
}
if (sayaç>1)
put("sayı asal değildir");
else
put("sayı asaldır")

biraz düzeltme ile bu psdecode da çalışır...
  Alıntı Yaparak CevaplaAlıntı Yaparak Cevapla
Eski 15-05-04, 23:35 #4
medusaman medusaman çevrimdışı
Varsayılan Cvp: Girilen sayi asal mı?

hoppala;
fonksiyon içindeki
return o; ve
return 1; komutları ne işe yarıyo? aralarındaki fark ne?
  Alıntı Yaparak CevaplaAlıntı Yaparak Cevapla
Eski 16-05-04, 01:02 #5
HoPPaLa0101 HoPPaLa0101 çevrimdışı
Varsayılan Cvp: Girilen sayi asal mı?

Alıntı:
Gerçek Mesajı Gönderen HoPPaLa

/******************KOD****************
#include<math.h>
#include<stdio.h>

int isprime(int p)
{
int i;
for(i = 2; i <= sqrt(p);i++)
if(p % i == 0)
return 0;
return 1;
}


/*************KOD*****************
oncelikle 0 c dilinde wrong demektir. 0 harici deger (ki ben 1 i kulandım) true demek.
bildigin gibi fonksiyonda asal olup olmadıgı kontrol ediliyor. if de de sunu diyorum. eger asal sa (p%i==0) fonskiyon 1 donsun (return 1). yanlışsa da 0 donsun (return 0). main fonksiyonun icinde de bunu kullanıyoruz. 1 se (dogru yani) asaldır bas. 0 sa (yanlış) asal degildir bas.

mesela
printf("%d", isprime(11)); ----> 1 doner.
printf("%d", isprime(10)); ----> 0 doner.
  Alıntı Yaparak CevaplaAlıntı Yaparak Cevapla
Eski 18-05-04, 02:38 #6
destruction destruction çevrimdışı
Varsayılan Cvp: Girilen sayi asal mı?

Peki en buyuk asal sayiyi bulabilecek ve buldugunda durabilecek bir program yazabilecek var mi?
  Alıntı Yaparak CevaplaAlıntı Yaparak Cevapla
Eski 18-05-04, 03:40 #7
HoPPaLa0101 HoPPaLa0101 çevrimdışı
Varsayılan Cvp: Girilen sayi asal mı?

en buyuk asal sayı diye bir şey yoktur.
  Alıntı Yaparak CevaplaAlıntı Yaparak Cevapla
Eski 18-05-04, 04:19 #8
destruction destruction çevrimdışı
Varsayılan Cvp: Girilen sayi asal mı?

vardir...........
  Alıntı Yaparak CevaplaAlıntı Yaparak Cevapla
Eski 18-05-04, 04:48 #9
HoPPaLa0101 HoPPaLa0101 çevrimdışı
Varsayılan Cvp: Girilen sayi asal mı?

asal sayılar sonsuz tane oldugu icin en buyuk asal sayı diye bir şey yoktur. ispatını da yaparım istersen. senin dedigin en buyuk sayıyı bul demek kadar komik.
  Alıntı Yaparak CevaplaAlıntı Yaparak Cevapla
Eski 18-05-04, 04:55 #10
destruction destruction çevrimdışı
Varsayılan Cvp: Girilen sayi asal mı?

Ya nasil soylesem bilmiyorum ama.. en buyuk asal sayi vardir.. bundan yuzyillar once sonsuz dedigin zaman adamlarin akli dururmus ..soyleyeni oldururlermis.. en buyuk asal sayi var..
  Alıntı Yaparak CevaplaAlıntı Yaparak Cevapla
Eski 18-05-04, 05:01 #11
HoPPaLa0101 HoPPaLa0101 çevrimdışı
Varsayılan Cvp: Girilen sayi asal mı?

sen bana en buyuk asal sayıyı bul ben sana ondan buyugunu buliyim.
  Alıntı Yaparak CevaplaAlıntı Yaparak Cevapla
Eski 18-05-04, 05:09 #12
destruction destruction çevrimdışı
Varsayılan Cvp: Girilen sayi asal mı?

ben cahillen sohbeti kestim..
  Alıntı Yaparak CevaplaAlıntı Yaparak Cevapla
Eski 18-05-04, 05:17 #13
HoPPaLa0101 HoPPaLa0101 çevrimdışı
Varsayılan Cvp: Girilen sayi asal mı?

daha oklidin yuzyıllar once asal sayıların sonsuz oldugunu ispatladıgını bilmiyorsun.
bilg. müh. demişsin. discrete mathematics dersinde bu ispatı yapmış olman gerekirdi. yapmadın mı yoksa.
  Alıntı Yaparak CevaplaAlıntı Yaparak Cevapla
Eski 18-05-04, 05:22 #14
destruction destruction çevrimdışı
Varsayılan Cvp: Girilen sayi asal mı?

Hatirlamiyom. Boyle bir ispat ama. tubitak ta veya burda tubitak gibi bir kac kurum var onlarin birinde gordum sanki .. uzun zaman oldu .. ama boyle bir seyin arandigini cok iyi hatirliyorum.. bir turlu firsatim olmadi gerci programini yazacak..
ama eminim ki boyle bir sayi bur da bir suru bilim adamin ca araniyo..
inan ki bol keseden atmiyom yani..
hele boyle bir forum de insanlar ogrenmeye degil de yazanlara laf sokmaya calisirkern..
neysem bir gun bulursam televizyonda gorursun artik sayinin ne oldugunu ..
  Alıntı Yaparak CevaplaAlıntı Yaparak Cevapla
Eski 18-05-04, 05:26 #15
HoPPaLa0101 HoPPaLa0101 çevrimdışı
Varsayılan Cvp: Girilen sayi asal mı?

bak şey desen eyvallah: "şu ana kadar bulunabilen en buyuk asal sayı" şudur desen tamam. şu ana kadar bulunan en buyuk asal sayı demek en buyuk asal sayı demek degildir. bulunan sayı da mersenne sayılarındandır. bunun sebebi mersenne sayılarının ki bunlar da asal sayıdır, daha kolay bulunabilmesidir.
bu arada eger bana ogretecegin bişey varsa almaya hazırım derdim yok kimseyle.
  Alıntı Yaparak CevaplaAlıntı Yaparak Cevapla
Eski 18-05-04, 05:30 #16
destruction destruction çevrimdışı
Varsayılan Cvp: Girilen sayi asal mı?

peki bulmaya calissan en buyuk asal sayiyi sence c de veya c++ yapabilirmisin programini?
yai diyelim ki 1 den basladin ve her sayiyi bir artirip asal olup olmadigini kontrol ediyosun..
boyle bir program yazabilirmisin yazamassin iste..
nerde yazarsin bunu?
  Alıntı Yaparak CevaplaAlıntı Yaparak Cevapla
Eski 18-05-04, 05:33 #17
HoPPaLa0101 HoPPaLa0101 çevrimdışı
Varsayılan Cvp: Girilen sayi asal mı?

c veya c++ da yazarım. sonsuz donguye sokup yukardaki isprime fonksiyonumu kullanırım, yuzyıllar sonra baya bir buyuk asal sayıya ulaşırım ama verimli bir yol olmaz artı omrum yetmez .
ayrıca yukardaki yok tabiiki verimli degil buyuk sayılar icin. zaten adamlar bilinen en buyuk asal sayıyı elde etmek icin 1000 lerce bilgisayarla paralel caısıyolar.
  Alıntı Yaparak CevaplaAlıntı Yaparak Cevapla
Eski 18-05-04, 05:38 #18
destruction destruction çevrimdışı
Varsayılan Cvp: Girilen sayi asal mı?

neysem ....bosver bu asal sayi olayini..
  Alıntı Yaparak CevaplaAlıntı Yaparak Cevapla
Eski 18-05-04, 10:05 #19
Sessiz_cin Sessiz_cin çevrimdışı
Varsayılan Cvp: Girilen sayi asal mı?

Bunun ewindeki bilgisayarlamı yapıcan ? çok film izlemeyin
  Alıntı Yaparak CevaplaAlıntı Yaparak Cevapla
Eski 18-05-04, 13:05 #20
haldunuraz haldunuraz çevrimdışı
Varsayılan Cvp: Girilen sayi asal mı?

arkadaşlar, yapmayın ya sonsuz sayı içimde sonsuz asal sayı vardır
bunu beş yaşındaki çoçuk bile mantığı ile çözer....
  Alıntı Yaparak CevaplaAlıntı Yaparak Cevapla
Cevapla

Bu konunun kısa yolunu aşağıdaki sitelere ekleyebilirsiniz

Konu Araçları

Gönderme Kuralları
Yeni konu açamazsınız
Cevap yazamazsınız
Dosya gönderemezsiniz
Mesajlarınızı düzenleyemezsiniz

BB code is Açık
Smiley Açık
[IMG] kodu Açık
HTML kodu Kapalı



Tüm saatler GMT +3. Şuan saat: 12:07
(Türkiye için artık GMT +3 seçilmelidir.)

 
5651 sayılı yasaya göre forumumuzdaki mesajlardan doğabilecek her türlü sorumluluk yazan kullanıcılara aittir. Şikayet Mailimiz. İçerik, Yer Sağlayıcı Bilgilerimiz.