首页 > 代码库 > usaco-sprime-superprime-pass
usaco-sprime-superprime-pass
这个题目开始真正用C++了,因为,数组的分配有限制了,只好用c++中的vector:
/*ID: qq104801LANG: C++TASK: sprime*/#include <iostream>#include <cstdio>#include <string>#include <cstring>#include <vector>#include <map>#include <set>#include <algorithm>#include <cstdlib>#include <cmath>using namespace std;vector<vector<int> > p(9);int n;int isprime(int x){ if (x%2==0)return 0; for(int i=3;i*i<=x;i+=2) if(x%i==0)return 0; return 1;}void test(){ freopen("sprime.in","r",stdin); freopen("sprime.out","w",stdout); cin>>n; //cout<<n<<endl; p[1].push_back(2); p[1].push_back(3); p[1].push_back(5); p[1].push_back(7); for(int i=2;i<=n;i++) { for(int j=0;j<p[i-1].size();j++) { long long num=p[i-1][j]*10; long long k; for(k=num+1;k<=num+9;k+=2) if(isprime(k))p[i].push_back(k); } } for(int i=0;i<p[n].size();i++) cout<<p[n][i]<<endl;}int main () { test(); return 0;}
看看测试结果:
USER: cn tom [qq104801]TASK: sprimeLANG: C++Compiling...Compile: OKExecuting... Test 1: TEST OK [0.008 secs, 3508 KB] Test 2: TEST OK [0.003 secs, 3508 KB] Test 3: TEST OK [0.008 secs, 3508 KB] Test 4: TEST OK [0.008 secs, 3508 KB] Test 5: TEST OK [0.011 secs, 3508 KB]All tests OK.Your program (‘sprime‘) produced all correct answers! This is your submission #2 for this problem. Congratulations!Here are the test data inputs:------- test 1 ----4------- test 2 ----5------- test 3 ----6------- test 4 ----7------- test 5 ----8Keep up the good work!Thanks for your submission!
usaco-sprime-superprime-pass
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。