سوال هفتم Project Euler (همراه راه حل)
پنجشنبه, ۲۱ دی ۱۳۹۱، ۰۳:۴۳ ب.ظ
متن سوال:
اگر اعداد اول رو به ترتیب لیست کنیم 2, 3, 5, 7, 11 و 13 می بینیم که 13 ششمین عدد اوله.
10001 عدد اول چنده؟
حل:
راه حل این سوال شمردن تک تک هست.
برای اینکار اول یه آرایه تعریف می کنیم برای فهمیدن اول بودن عدد یا نبودن.
بعد تعداد عدد های اول رو می شماریم تا به عدد مورد نظر برسیم.
اینم کدش:
private
bool
isPrime(
int
numm) {
if
(numm <= 1) {
return
false
;
}
if
(numm == 2){
return
true
;
}
if
(numm % 2 == 0) {
return
false
;
}
int
counter = 3;
while
((counter * counter) <= numm) {
if
(numm % counter == 0) {
return
false
;
}
else
{
counter +=2;
}
}
return
true
;
}
int main(){
int
numPrimes = 1;
int
numm = 1;
while
(numPrimes < 10001) {
numm = numm + 2;
if
(isPrime(numm)) {
numPrimes++;
}
}
}
- ۹۱/۱۰/۲۱
- ۱۵۰۹ نمایش