• ベストアンサー

26408023 = A * B を求めたい

Javaで、26408023 = A * B の正の整数A,Bを求めるプログラムを教えてください! A,Bのうち、どちらかは1ではない、という条件付きです。 for文を使って考えたのですが、何度やっても上手く行きませんでした! 詳しい方、for文を使ったプログラムを教えてください! お願いしますm(_ _)m

質問者が選んだベストアンサー

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.3

#1のご解答で、初めて求まった3457で割った商をnに 入れて、更にループの中に入るべきではないでしょうか。 今回は7639が素数であったから良いが、素数でない場合ならここで止めては、解がすべて出ないと思う。

その他の回答 (3)

  • hofuhofu
  • ベストアンサー率70% (336/476)
回答No.4

Javaは知らないので、Cですけど。 結果の表示(printf)のところさえ適当に書きかえれば、使えると思います。 int i,n=26408023; for(i=2;i<=sqrt(n);i++){  if(n%i==0) printf("%d %d \n",i,n/i); }

  • osamuy
  • ベストアンサー率42% (1231/2878)
回答No.2

ありゃ、コードが抜けてた。 int n = 26408023; int a = 2; for ( a = 2; a < n; a++ ){ if ( n % a == 0 ){ break; } } aは3457らしい。

  • osamuy
  • ベストアンサー率42% (1231/2878)
回答No.1

で、nじゃないaが答え。 まあ、この書き方だと60点ってところかなー。

関連するQ&A