المپیاد کامپیوتر

ترکیبیات,برنامه نویسی,گراف,الگوریتم , و کلا کامپیوتر

المپیاد کامپیوتر

ترکیبیات,برنامه نویسی,گراف,الگوریتم , و کلا کامپیوتر

المپیاد کامپیوتر

سوال هفتم 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++;
    }
}
}

نظرات (۰)

هیچ نظری هنوز ثبت نشده است
ارسال نظر آزاد است، اما اگر قبلا در بیان ثبت نام کرده اید می توانید ابتدا وارد شوید.
شما میتوانید از این تگهای html استفاده کنید:
<b> یا <strong>، <em> یا <i>، <u>، <strike> یا <s>، <sup>، <sub>، <blockquote>، <code>، <pre>، <hr>، <br>، <p>، <a href="" title="">، <span style="">، <div align="">
تجدید کد امنیتی