算術では、n平滑数(nは任意の素数)は、nより大きい素因数を持たない正の整数として数学的に定義されます。たとえば、42はすべての素因数が7以下であるため7平滑ですが、44は素因数として11もあるため7平滑ではありません。
非常に滑らかな数値を、それ自体の平方根より大きい素因数のない数値として定義します。したがって、非常に滑らかな数値のリストは次のように定式化できます。
- (編集済み!) 1は、素因数がまったくないため、非常に滑らかな数値です。(この質問の元のバージョンでは、1がリストから誤って除外されていたため、出力から除外した場合、間違ってマークされることはありません。)
- 4(= 2 2)と8の間では、非常に滑らかな数値は2滑らかで、2が唯一の素因数であるということです。
- 9(= 3 2)と24の間では、非常に滑らかな数値は3滑らかで、素因数分解で2と3を持つことができます。
- 25(= 5 2)と48の間では、非常に滑らかな数値は5滑らかで、素因数分解で2、3、および5を持つことができます。
- など、次の素数の二乗に到達するたびに基準をアップグレードします。
非常に滑らかな数値のリストは固定されており、次のように始まります:1、4、8、9、12、16、18、24、25、...
あなたの課題は、10,000(= 100 2)までのすべての非常に滑らかな数値を出力するコードを書くことです。リスト内の各番号と次の番号の間には、少なくとも1つのセパレーター(スペース、コンマ、改行などは関係ありません)が必要ですが、どの文字が使用されるかはまったく関係ありません。
いつものように、最低のバイト数が勝ちます-明らかに、リストを出力するだけではここではあまり有益ではありません。幸運を!
1
)