#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.
lys 2013 de çıkmış şu sorunun algoritmasını şu şekilde yazdım
< Resime gitmek için tıklayın >
ama ne yazarsam yazayım kuvvetli sayı olduğunu söylüyor. hata nerde acaba?
DH forumlarında vakit geçirmekten keyif alıyor gibisin ancak giriş yapmadığını görüyoruz.
Üye Ol Şimdi DeğilÜye olduğunda özel mesaj gönderebilir, beğendiğin konuları favorilerine ekleyip takibe alabilir ve daha önce gezdiğin konulara hızlıca erişebilirsin.
< Bu mesaj bu kişi tarafından değiştirildi co2ov -- 3 Nisan 2014; 0:06:22 >