8年前c++のプログラミングについて質問です。素因数分解をするプログラムを作りたいんですが、途中がわかりません。n){ここがわかりません。8年前どう分からないのか具体的に書いてください。表示されるのかが、わかりません。2×3×7×47と表示したいです。2×3×7×47前者は34=2×17か65=5×13の間違いであると仮定して、さて、まずは再帰呼び出しを使わない方法から考えてみてはどうでしょうか。筆算で求めるときにどうするかを念頭に置きながら。バグのないプログラムはない。プログラムは思ったとおりには動かない。数学の素因数分解のアルゴリズムを元にプログラムを組めばわかりやすいと思います。8年前boxさん65です、すいません。再帰を使わないやり方・・・わかりました。naohiro19さんなるほどです。8年前かずまさん自分もこんな感じでつくりました。参考にさせていただきます。0xffff;の意味は、おそらく2つの16ビット整数をビット演算で無理やり一つにまとめた32ビット整数nから下位16ビットの整数を取り出してnに代入している。いうことだと思います。引数が2つ必要なのか、説明をお願いします。引数が2つ必要なのか、説明をお願いします。ように表示することことになります。呼び出されたとき、最初の呼び出しなのか、二度目以降の呼び出しなのかを区別する手段を私は思いつきません。呼び出せば、要求通りの表示ができます。1つでこの問題を解決できる方法をご存じなら、ぜひご教示ください。2つ使うなら、もっと凝ったことができると考えたのが私のあの解答です。本来ならループで書けるものをわざわざ再帰呼び出しに変えるのだから、再帰呼び出しをする部分に関してはループを一切使わないようにしようと考えました。8年前やはり、そういうことでしたか。方法1static変数を使い、1回目か2回目以降かを区別する。方法2最後の素因数の後に、Xがつくのかつかないのかを判断する。n/rは1になるので、それで判断する。方法1static変数を使い、1回目か2回目以降かを区別する。static変数は私も考えましたが、スレッドセーフではないのが嫌だな、と思って避けていました。こんな問題にスレッドセーフを持ち出す意味はありませんね。方法2最後の素因数の後に、Xがつくのかつかないのかを判断する。n/rは1になるので、それで判断する。これはどういうことでしょうか?もう少し具体的な説明をお願いします。具体的な説明をお願いします。私が勘違いしておりました。関数側で出力することを考えておりませんでした。重ねてお詫びいたします。ミクプラは自由にリンクできます。