なんかやっていたので出てみた。面白かった。
38334点で31位でした。わーい。
【最初】
素数いっぱいかければいいやろ(適当
#include<bits/stdc++.h> using namespace std; typedef long long ll; bool isPrime(ll x){ for(ll i=2;i*i<=x;i++) if(x%i==0) return false; return true; } int main(){ ll i,j=2,k; for(i=0;i<100;i++){ while(!isPrime(j)) j++; k=1; while(k*j<1e9) k*=j; cout << k << endl; j++; } return 0; }
421 点。明らかに方針が違うことを悟る。
【次】
素数をたくさん掛け合わせよう。
#include<bits/stdc++.h> using namespace std; typedef long long ll; bool isPrime(ll x){ for(ll i=2;i*i<=x;i++) if(x%i==0) return false; return true; } int main(){ ll i,j=2,k=1,x=10,y; vector<ll> v; for(i=2;i<10000;i++) if(isPrime(i)) v.push_back(i); //random_shuffle(v.begin(),v.end()); for(i=0;i<100;i++){ k=v[i+x];j=0; bool u[x]={},f; while(1){ u[j]=false; if(k*v[j]<100000000LL)k*=v[j],u[j]=true; j=(j+1)%x;f=false; for(y=0;y<x;y++) f|=u[y]; if(!f) break; } cout << k << endl; } return 0; }
16112 点。まだまだ取れそう。
【次】
1e8と1e9勘違いしてるやんけ(絶望
#include<bits/stdc++.h> using namespace std; typedef long long ll; bool isPrime(ll x){ for(ll i=2;i*i<=x;i++) if(x%i==0) return false; return true; } int main(){ ll i,j=2,k=1,x=5,y; vector<ll> v; for(i=2;i<10000;i++) if(isPrime(i)) v.push_back(i); //random_shuffle(v.begin(),v.end()); cout << 1000000000LL << endl; for(i=0;i<100-1;i++){ k=v[i+x];j=0; bool u[x]={},f; while(1){ u[j]=false; if(k*v[j]<1000000000LL)k*=v[j],u[j]=true; if(j<2&&k*v[j]<1000000000LL)k*=v[j],u[j]=true; j=(j+1)%x;f=false; for(y=0;y<x;y++) f|=u[y]; if(!f) break; } cout << k << endl; } return 0; }
【最後】
色々試したけど成果が出ないので離脱
#include<bits/stdc++.h> using namespace std; typedef long long ll; bool isPrime(ll x){ for(ll i=2;i*i<=x;i++) if(x%i==0) return false; return true; } int main(){ ll i,j,k,x=6,y; vector<ll> v; for(i=2;i<10000;i++) if(isPrime(i)) v.push_back(i); //random_shuffle(v.begin(),v.end()); for(i=0;i<100;i++){ k=v[i];j=0; bool u[x]={},f; if(i&&k*v[0]<1000000000LL)k*=v[0]; if(i-1&&k*v[0]<1000000000LL)k*=v[0]; if(i&&k*v[1]<1000000000LL)k*=v[1]; j=0; while(1){ u[j]=false; if(k*v[j]<1000000000LL)k*=v[j],u[j]=true; j=(j+1)%x;f=false; for(y=0;y<x;y++) f|=u[y]; if(!f) break; } cout << k << endl; } return 0; }
【全体】
スコアがだんだん上がって言って面白かった。
こういうタイプのコンテストは珍しいのでもっとやってほしい。
Top10位が全員Text(cat)って、、、