#include<iostream> #include<vector> usingnamespacestd; boolisprime(int a){ for (int i = 2; i * i <= a; i++) if(a % i == 0) returnfalse; returntrue; }
intmain(){ int M, N, num = 2, cnt = 0; vector<int> v; cin >> M >> N; while(cnt < N){ //当素数个数小于最大的 N 时,继续写入 v 中 if( isprime(num)){ cnt++; //素数判断基数增加 1 if(cnt >= M) v.push_back(num); //如果这个素数是第 M+ 个素数(包括第 M 个),写入 v } num++; //总素数个数增加 1
} cnt = 0; for ( int i = 0; i < v.size(); i++){ cnt++; if(cnt % 10 != 1) printf(" "); printf("%d", v[i]); if(cnt % 10 == 0) printf("\n"); }