-
//zoj1312 Prime Cuts
-
//Accepted 1312 C ++ 00:00.00 844K
-
#include <iostream>
-
using namespace std;
-
int plist[1000],pcnt;
-
int N,C;
-
-
void getprime()
-
{
-
plist[0] = 1, plist[1] = 2, plist[2] = 3, pcnt = 3;
-
for (int n=5,i; n<=2000; n+=2) {
-
for (i=1; plist[i]*plist[i]<=n && n%plist[i]; i++);
-
if (plist[i]*plist[i] > n) plist[pcnt++] = n;
-
}
-
// cout << pcnt << endl;
-
}
-
-
void solve()
-
{
-
cout << N << " " << C << ":";
-
int i,cnt=0;
-
for (; plist[cnt]<=N; cnt++);
-
if (cnt%2==0) {
-
if (2*C < cnt)
-
for (i=cnt/2-C; i<cnt/2+C; i++)
-
cout << " " << plist[i];
-
else
-
for (i=0; i<cnt; i++)
-
cout << " " << plist[i];
-
} else {
-
if (2*C-1 < cnt)
-
for (i=(cnt+1)/2-C; i<(cnt+1)/2+C-1; i++)
-
cout << " " << plist[i];
-
else
-
for (i=0; i<cnt; i++)
-
cout << " " << plist[i];
-
}
-
cout << endl << endl;
-
}
-
-
int main()
-
{
-
getprime();
-
while (cin >> N >> C)
-
solve();
-
return 0;
-
}
zoj1312 Prime Cuts
最新推荐文章于 2017-03-05 16:22:11 发布