2つの入力された数字が互いに素である(共通の要因なし)かどうかを判断するために、C++で関数を作成する方法はありますか? たとえば、 "1,3"は有効ですが、 "2,4"は有効ではありません。相対プライム番号
相対プライム番号
答えて
は、ここでのコードの6行でユークリッドのアルゴリズムは次のとおりです。
追加するを更新しましたbool RelativelyPrime (int a, int b) { // Assumes a, b > 0
for (; ;) {
if (!(a %= b)) return b == 1 ;
if (!(b %= a)) return a == 1 ;
}
}
:私はthis answer from Omnifariousによって、難読化されており、誰がプログラムgcd
機能をしたがって:
constexpr unsigned int gcd(unsigned int const a, unsigned int const b)
{
return (a < b) ? gcd(b, a) : ((a % b == 0) ? b : gcd(b, a % b));
}
は、だから今、私たちはRelativelyPrimeの3行のバージョンを持っています10
bool RelativelyPrime (int a, int b) { // Assumes a, b > 0
return (a<b) ? RelativelyPrime(b,a) : !(a%b) ? (b==1) : RelativelyPrime (b, a%b);
}
-1 – starblue
+1の "ひどい"コードスタイル。私はそれを読んでグースバンプを持っています。 – hardmath
+1恐ろしいコードのスタイル - それはユークリッドを尊重します。それがどのように機能するかについての簡単で明確な説明は、驚くべき定理の純粋な天才を欠いている。 – DaveWalley
Greatest Common Denominatorを計算するための多くのアルゴリズムの1つです。ジム・クレイさん事も無げコメントによって行動に亜鉛メッキ
KnizのAOCP v.2(Seminumerical Algorithms)は、いくつかのアプローチの効率性についての優れた分析を行っています。恐ろしいコードスタイルのために – hardmath
- 1. jNetPcap内の相対シーケンス/ ack番号
- 2. 挿入/通常モードでVIMの絶対番号と相対番号を切り替えます
- 3. 番号が奇数/偶数/複合している場合/プライム
- 4. Python - PySharkは相対シーケンス番号を返しますか?
- 5. tmuxは相対行番号をサポートしていますか?
- 6. edのパターンで相対線番号を使用するには
- 7. 無効なJSONの相対行番号を見つける
- 8. 内線番号と内線番号との相違点
- 9. spacemacsの絶対行番号
- 10. vimでラップされた相対行番号を表示する方法
- 11. vim:1から始まる相対的な行番号を表示する
- 12. 返す絶対参照番号
- 13. ハイパーヘッダー対応システムのCPU番号
- 14. Java - 2D配列チェック対角番号ボード
- 15. 電話番号が有効ではないSMS対応着信電話番号
- 16. 相対的子100%相対親の幅
- 17. 相当するPostgreSQLのバージョン番号を取得する
- 18. データベース番号の自動番号付けまたはカスタム番号
- 19. アセンブリ8086:8ビットのバイナリ番号をグレイ番号に相当するものに変換しますか?
- 20. 相対レイアウトでのテキストビューの順番を変更:Android
- 21. Vimのビジュアルモードで相対線番号を有効にするにはどうしたらいいですか?
- 22. 前のビルド番号のビルド番号
- 23. ハスケル - 予約番号ツリーの番号
- 24. Xcodeタイプ番号の電源番号
- 25. "シリアル番号"をシリアル番号に変換
- 26. IND番号とNAN番号の違い
- 27. Django製品番号バスケット番号
- 28. @(YES)vs [NS番号番号WithBool:はい]
- 29. 番号に番号を付ける?
- 30. ブートストラップスライダリンク番号付きスライド番号
これは宿題の問題ですか? – mikerobi
[ユークリッドアルゴリズム](http://en.wikipedia.org/wiki/Euclidean_algorithm) –
スタインのアルゴリズムまたはバイナリGCDを参照してください。そして、宿題。 –