Şimdi Ara

şu algoritmanın neresi yanlış

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
2 Misafir - 2 Masaüstü
5 sn
4
Cevap
0
Favori
583
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  •  şu algoritmanın neresi yanlış

    lys 2013 de çıkmış şu sorunun algoritmasını şu şekilde yazdım

     şu algoritmanın neresi yanlış

    ama ne yazarsam yazayım kuvvetli sayı olduğunu söylüyor. hata nerde acaba?



    < Bu mesaj bu kişi tarafından değiştirildi co2ov -- 3 Nisan 2014; 0:06:22 >







  • fark ettim sanırım bi dakka
  • fark ettim sanıp kod üzerinde tamamen emin olarak şu şekilde düzelttim yine olmadı

    #include <iostream> 
    using namespace std;

    int main(){

    int n,s,k,p,j,ks,ksd;
    float b1,b2;

    cout << "n: "; cin >> n;

    for(p=2;p<=n;p++){
    for(j=1;j<=p;j++){
    if(p%j==0){
    b1=n/p;
    if(b1-int(b1)==0){
    b2=n/(p*p);
    if(b2-int(b2)==0){
    ks=n;

    }

    }

    }

    }

    }
    cout << ks << " bir kuvvetli sayidir";


    }














    < Bu mesaj bu kişi tarafından değiştirildi co2ov -- 3 Nisan 2014; 0:27:11 >




  •  
    #include <iostream>
    #include <math.h>
    using namespace std;

    bool asalMi(int a)
    {
    if (a == 2)
    return 1;

    if (a < 1)
    return 0;

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

    int _tmain(int argc, _TCHAR* argv[])
    {
    bool bolen = 1;
    int n;
    cin >> n;
    for (int p = 2; p < ((n / 2) + 1); p++)
    {
    if (asalMi(p))
    {
    if (n%p == 0 && n % (p*p) != 0)
    bolen = 0;
    }
    }
    if (bolen == 0)
    {
    cout << n << " kuvvetli bir sayi degildir.";
    }else{
    cout << n << " kuvvetli bir sayidir";
    }

    }



    bunda sıkıntı yok sanırım. muhtemelen BÜTÜN asal sayılar için bakmadınız. Tek bir asal sayıya baktınız. Mesela 99, 3^2 * 11. 3 ve 3'ün karesine tam bölünüyor ama 11'in karesine tam bölünmüyor bu yüzden şartı sağlamıyor.




  • 
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.