Entries

スポンサーサイト (この記事を編集する[管理者用])

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

コメント

コメントの投稿

コメントの投稿
管理者にだけ表示を許可する

トラックバック

トラックバック URL
http://rsujskf.blog32.fc2.com/tb.php/2030-87be8dde
この記事にトラックバックする(FC2ブログユーザー)

Open 2011 Algorithm Qual. 3 EASY - AllButOneDivisor (この記事を編集する[管理者用])

Source

TopCoder Open 2011 Algorithm Qualification Round 3 EASY (250pt)
Problem Statement
TopCoderニコ生オープン TCO11 Qual. 3 自分の参加記録

問題概要

1以上15以下の整数がK個 (6以下) 与えられる.
その中に,約数がちょうどK-1個含まれるような,最小の正整数を求める問題.
存在しないならそれを指摘する.

解法

約数に含まれない1個を総当たりして,その他の数字のLCMを求めて,それが約数に含まれないので割り切れなければ,答えの候補.
その中で最小値をとれば良い.
が,答えの上限は,15^5ぐらいなわけで,答えを総当りで調べても良い.以下のコードは答え総当り.

C++によるスパゲッティなソースコード
// #includeとusing namespace std;は略

#define REP(i,a,b) for(i=a;i<b;i++)
#define rep(i,n) REP(i,0,n)

class AllButOneDivisor {
public:
int getMinimum(vector <int> in) {
  int i,j,k;
  int res;

  REP(res,1,5000000){
    k = 0;
    rep(i,in.size()) if(res % in[i] == 0) k++;
    if(k==in.size()-1) return res;
  }

  return -1;
}

};

コメント

コメントの投稿

コメントの投稿
管理者にだけ表示を許可する

トラックバック

トラックバック URL
http://rsujskf.blog32.fc2.com/tb.php/2030-87be8dde
この記事にトラックバックする(FC2ブログユーザー)

Appendix

Recent Articles

ブログ内検索

Ads


(プライバシーポリシー)
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。