Çözüldü C++ Asal Sayı Bulan Program

Bu konu çözüldü olarak işaretlenmiştir. Çözülmediğini düşünüyorsanız konuyu rapor edebilirsiniz.

Pawey

Decapat
Katılım
8 Haziran 2019
Mesajlar
21
Daha fazla  
Cinsiyet
Erkek
C++'da 0 ile 500 arasında bir sayı girildiğinde 0 ile o sayı arasındaki asal sayıları ekrana veren programı nasıl yazabilirim? Anlatımlı olursa daha iyi olur.
 
Son düzenleyen: Moderatör:
Çözüm
Öncelikle neden %2 diye tuturduğunuzu anlamadım. Anlatır mısınız? @Bellamy

C'de bu şekilde yazdım. C++'da bunların olması gerek diye biliyorum.

C:
#include <stdio.h>
int main(){
    int a,b,c=0,i;
    printf("Lutfen sayi giriniz: ");
    scanf("%d",&a);
    if (a>500 || a<0){
        printf("0 ile 500 arasi sayi girmediniz.");
        return 0;
    }
    for (i=2;i<a+1;i++){
        for (b=2;b<i;b++){
            c=0;
            if (i%b==0){
                c=1;
                break;
            }
        }
        if (c==0)
            printf("%d\n",i);
    }
    return 0;
}
Nette çeşitli örnekler var. Dener misin? @Pawey
Kod:
#include <iostream>
#include<stdlib.h>
using namespace std;
int main()
{
    setlocale(LC_ALL,"Turkish"); //Türkçe karakter
    //Kullanıcının girdiği 2 sayı arasındaki asal sayıları bulacağız.
    int sayac1=0,sayac2=0;
 
    for(int i=0;i<=500;i++)
    {
        sayac1=0;
        for(int j=2;j<i;j++)
        {
            if(i%j==0)
            {
                sayac1++;
                break;
            }
        }
        if(sayac1==0)
        {
            cout<<i<<" ";
            sayac2++;
        }
    }
    cout<<endl;
    cout<<"1-100 arası Toplam "<<sayac2<<" adet asal sayı var.";
}
 
Nette örnekleri var. Dener misin? @Pawey
Kod:
#include <iostream>
#include<stdlib.h>
using namespace std;
int main()
{
    setlocale(LC_ALL,"Turkish"); //Türkçe karakter
    //Kullanıcının girdiği 2 sayı arasındaki asal sayıları bulacağız.
    int sayac1=0,sayac2=0;
 
    for(int i=0;i<=500;i++)
    {
        sayac1=0;
        for(int j=2;j<i;j++)
        {
            if(i%j==0)
            {
                sayac1++;
                break;
            }
        }
        if(sayac1==0)
        {
            cout<<i<<" ";
            sayac2++;
        }
    }
    cout<<endl;
    cout<<"1-100 arası Toplam "<<sayac2<<" adet asal sayı var.";
}
Bunları internette görmüştüm ama "cout" fonksiyonun görmediğimiz için yapmak istemedim. Belki daha basit yolu vardır sadece if-else-else if ve for döngüsünü kullanarak yapılabilir belki diye düşünmüştüm ve az önce denedim bu sadece 500'e kadar olan asal sayıları gösteriyor sanırım farklı bir düzenleme aracı kullanmışlar.
 
Eğer girilen sayı 0 ila 500 arasında ise, for(i=0;i<girilensayi;i++)
Bunları internette görmüştüm ama "cout" fonksiyonun görmediğimiz için yapmak istemedim. Belki daha basit yolu vardır sadece if-else-else if ve for döngüsünü kullanarak yapılabilir belki diye düşünmüştüm ve az önce denedim bu sadece 500'e kadar olan asal sayıları gösteriyor sanırım farklı bir düzenleme aracı kullanmışlar.
Kardeşim ilk olarak if bloğunda girilen sayının 0 ila 500 arasında olup olmadığını kontrol edeceksin, ondan sonra for bloğu içinde i'yi 0 dan başlatıp girilen sayı kadar döndüreceksin ve asal sayıları bir değişkene atacaksın. Son olarak ekrana yazdıracaksın(asal sayı= 2 hariç, girilen sayi mod == 1 ise asaldır).
 
Eğer girilen sayı 0 ila 500 arasında ise, for(i=0;i<girilensayi;i++)

Kardeşim ilk olarak if bloğunda girilen sayının 0 ila 500 arasında olup olmadığını kontrol edeceksin, ondan sonra for bloğu içinde i'yi 0 dan başlatıp girilen sayı kadar döndüreceksin ve asal sayıları bir değişkene atacaksın. Son olarak ekrana yazdıracaksın(asal sayı= 2 hariç, girilen sayi mod == 1 ise asaldır).
#include <iostream>

int main(){

int x;
int y;

scanf("%d",&x);


if(x<=500 && x>=0){
for(y=0;y<=x;y++){



???????????????

printf("%d",y);
}


}

}
else {


printf("Hatali Sayi Tuslaasi");
}

return 0;
}
Sanırım "for" bloğunu yanlış yapıyorum o yüzden soru işareti koydum.Diğer yerleri doğru sanırım. Söylediklerini koda döker misin çünkü biraz acemiyim de.
 
C'de çalışan çoğu şey çalışıyor zaten. C'de istediğinizi yapabilirim ama şu an gece yarısına yetişmesi gerene bir ödevim var. Gece yarısından sonra bakabilirim ancak. Sıfırdan o sayıya kadar olan sayıları teker teker alıp sıfırdan denenen sayıya kadar olan sayılara göre modunu alın. Mod herhangi birinde sıfır olursa asal değildir. Bu yöntem ile yapabilirsiniz.
 
#include <iostream>

int main(){

int x;
int y;

scanf("%d",&x);


if(x<=500 && x>=0){
for(y=0;y<=x;y++){



???????????????

printf("%d",y);
}


}

}
else {


printf("Hatali Sayi Tuslaasi");
}

return 0;
}
Sanırım "for" bloğunu yanlış yapıyorum o yüzden soru işareti koydum.Diğer yerleri doğru sanırım. Söylediklerini koda döker misin çünkü biraz acemiyim de.
Yukarıya asal sayı diye bir değişken tanımla intiger, forun içine if(y%2=1) asalsayi=y; else if(y==2) asalsayi=y;, tam hatırlamıyorum fakat tüm değişkenlerı atamaz ise += olarak dener misin?
 
Uyarı! Bu konu 5 yıl önce açıldı.
Muhtemelen daha fazla tartışma gerekli değildir ki bu durumda yeni bir konu başlatmayı öneririz. Eğer yine de cevabınızın gerekli olduğunu düşünüyorsanız buna rağmen cevap verebilirsiniz.

Yeni konular

Geri
Yukarı