2016-08-06 9 views
-5

私はC++で豊富な経験がありません。 1とnの間の素数の数を1で終わる数をカウントするプログラムを誰も作ることができますか?1とnの間の素数の数は1で終わります。

+1

これは、最も一般的な基本的なプログラミング演習の一つであります。 "C++個数の素数"をGoogleで検索すると、文字通り何百ものソリューションではないにもかかわらず、何百もの文字列を見つけることができます。 – JJJ

+0

@Juhanaしかし、$ 1 $で終わる条件はもっと複雑です。 – CHSLD

+0

本当にありません。あなたがしなければならないのは、1で終わっていなければ数を数えることではありません。あなたがそれを行う方法が分からなければ、 "C++は整数の最後の桁を取得"してください。 – JJJ

答えて

0

まず、数字がプライムかどうかをチェックする関数を実装します。あなたは最後の桁が1であるかどうかをチェックする機能を実装することができた後

bool isPrime(const unsigned int number) { 
    if (number == 0) return false; 
    if (number == 1 || number == 2) return true; 

    const unsigned int half_number = number/2; 

    for (unsigned int i = 2; i <= half_number; ++i) { 
    if (number % i == 0) 
     return false; 
    } 
    return true; 
} 

bool lastDigitOne(const unsigned int number) { 
    return (number % 10) == 1 ? true : false; 
} 

が最後にカウントコード:

unsigned int countingCode(const unsigned int N) { 
    unsigned int counter = 0; 
    for (unsigned int i = 1; i <= N; ++i) { 
    if (isPrime(i) == true && lastDigitOne(i)) { 
     ++counter; 
    } 
    } 
    return counter; 
} 
関連する問題