سوال هفتم 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++;
}
}}- ۹۱/۱۰/۲۱
- ۱۵۶۵ نمایش