ICPC 国内予選2016C 竹の花 (☆) AOJ1610
やるだけ。簡単すぎる。難易度100の実装重めのやつのほうが明らかにめんどい(個人差
#include <bits/stdc++.h> #define chmin(a, b) ((a)=min((a), (b))) #define chmax(a, b) ((a)=max((a), (b))) #define fs first #define sc second #define eb emplace_back using namespace std; typedef long long ll; typedef pair<int, int> P; typedef tuple<int, int, int> T; const ll MOD=1e9+7; const ll INF=1e18; int dx[]={1, -1, 0, 0}; int dy[]={0, 0, 1, -1}; bool ans[7369000]; int main(){ int m,n; while(true){ cin >> m >> n; if(m + n == 0) break; for(int i = 0;i < 7369000;i++){ ans[i] = false; } int year = m; for(int i = 0;i < n;i++){ while(true){ if(ans[year] == false)break; year++; } for(int j = 1;j*year < 7369000;j++){ ans[j*year] = true; } } for(;year < 7369000;year++){ if(ans[year] == false){ cout << year << endl; break; } } } }