-
//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
最新推荐文章于 2021-09-16 10:53:36 发布
本文提供了一种解决ZOJ1312 Prime Cuts问题的方法,通过预先计算素数并根据输入参数输出指定范围内的素数列表。代码采用C++编写,实现了高效获取一定数量级内的素数。
1778

被折叠的 条评论
为什么被折叠?



