日々精進

aikoと旅行とプログラミング

【AOJ 1610】Bamboo Blossoms

問題

Bamboo Blossoms | Aizu Online Judge

方針

  • エラトステネスの篩的に消していく.
  • Nが0になったときのiが答え.

コード

#include <iostream>
#include <cmath>

using namespace std;

#define MAX 7368791

int main(){
  int m, n;
  bool flag[MAX];

  while(cin >> m >> n, m||n){
    for(int i = 0 ; i <= MAX ; i++) flag[i] = false;
    for(int i = m ;; i++){
      if(!flag[i]){
    if(n == 0){
      cout << i << endl;
      break;
    }else{
      n--;
      for(int j = i ; j <= MAX ; j+=i){
        flag[j] = true;
      }
    }
      }
    }
  }
}

参考

審判長による国内予選講評(確定版) | ACM-ICPC 2016 Asia Tsukuba Regional