• 締切済み

約数について

300以下の自然数のうち正の約数が8個である数の個数を求めていただけないでしょうか。

みんなの回答

  • staratras
  • ベストアンサー率41% (1517/3693)
回答No.4

Excelの関数だけを使って(マクロを使わずに)300以下の自然数の約数の個数の一覧表を作ってみました。ついでに素数と19以上の素因数がある数(19以上の素数自身も含む)もわかるようにしています。

すると、全ての回答が全文表示されます。
  • staratras
  • ベストアンサー率41% (1517/3693)
回答No.3

手計算でやってみます。 まず素数は1とその数自身の2個しか約数がないのでダメです。 合成数Nの場合、約数の数が8となるのは素因数分解すれば次の3つの場合があります。 以下p,q,rは素数で3、の場合だけp<q<r(最小の素因数がp)とします。 1、N=p^7 の場合2^7=128,3^7=2187>300だから p=2 のみで1通り 2、N=p^3・q の場合2^3=8,3^3=27,5^3=125,7^3=343>300 だから    p=2のとき q=3,5,7,11,13,17,19,23,29,31,37 の11通り    p=3のとき q=2,5,7,11 の4通り    p=5のとき q=2の1通り これらを合計して16通り 3、N=p・q・rの場合    p=2のときqr≦150 だから     q=3のときr=5,7,11,13,17,19,23,29,31,37,41,43,47の13通り     q=5のときr=7,11,13,17,19,23,29の7通り     q=7のときr=11,13,17,19の4通り     q=11のときr=13 の1通り(q≧13のときは題意を満たさず)    p=3のときqr≦100 だから     q=5のときr=7,11,13,17,19の5通り     q=7のときr=11,13,の2通り (q≧11のときには題意を満たさず)    p≧5のときqr≦60 だからq=7のときでもr<8.57で不適    これらを合計して13+7+4+1+5+2=32通り 1、2、3を合わせて、1+16+32=49 通り 答え 49個

すると、全ての回答が全文表示されます。
  • f272
  • ベストアンサー率46% (8653/18507)
回答No.2

書き出してみた。 128, 24,40,56,88,104,136,152,184,232,248,296, 135,189,297, 54,250, 30,42,66,78,102,114,138,174,186,222,246,258,282, 70,110,130,170,190,230,290, 154,182,238,266, 286, 105,165,195,255,285, 231,273, 全部で49個だね。

すると、全ての回答が全文表示されます。
  • asciiz
  • ベストアンサー率70% (6871/9771)
回答No.1

別に、その答えが知りたいのではなくて、それを検索するプログラムを組んでみよう、という課題だったのではないですか? →https://okwave.jp/qa/q9844242.html 答えだけ知ったところで何の解決にもならないでしょう。 人間が手で約数の数を知ろうとする場合は、素因数分解したりしますが、コンピュータにやらせるならそんな難しいことを考える必要はありません。 Nという数字が与えられたなら、順番に1からNまでの数で割ってみて、割り切れた数が約数の1つなわけです。それをカウントします。 カウントし終わった結果、8個であれば表示せよ、というのが題意です。 プログラミング言語には何を使ってもいいと思いますが…。 JavaScriptはブラウザ上で動くものであることから、入出力や実行方法を工夫しなくてはなりません。 そういう、アルゴリズム以外のことを考えなければならないのはプログラミングの邪魔になるので、「向かない」と書きました。(でも、出来ないわけではありません) perlだとこんな感じになります。※回答そのものではありません ----ソース use strict; my $N = 10; for (my $i=1; $i<=$N; $i++) { my $c = 0; for (my $j=1; $j<=$i; $j++) { $c++ if ($i % $j == 0); } print "$i の約数は $c 個です\n"; } ----実行結果 1 の約数は 1 個です 2 の約数は 2 個です 3 の約数は 2 個です 4 の約数は 3 個です 5 の約数は 2 個です 6 の約数は 4 個です 7 の約数は 2 個です 8 の約数は 4 個です 9 の約数は 3 個です 10 の約数は 4 個です ---- Visual Studio が入っているならC言語でもいいですし、今時の人はPythonとか使うのかもしれません。(まあ今更perlはあまりお勧めできるものでもありませんしね)

すると、全ての回答が全文表示されます。

関連するQ&A