您的位置:首页 > 其它

ZOJ 1312 题解这是一道简单题但容易出错,不需要使用任和算法就可做出来,而且很快。我的AC 0ms

2011-08-24 15:25 344 查看
#include<cstdio>
#include<iostream>
#include<cmath>

using namespace std;

int Prime(int x)
{
int i=2,flag = 1;
while(i<=sqrt(double(x)) && flag==1)
{
if(x%i==0)
{
flag = 0;
break;
}
i++;
}
return flag;
}

int main()
{
int N, C, i, j;
int a[500],count,k;

while (cin>>N>>C)
{
j = 2;
a[1] = 1;
count = 1;
for(i=2; i<=N; i++)
{
if(Prime(i))
{
a[j++] = i;
count++;
}
}
printf("%d %d:",N,C);
if(2*C>count || 2*C-1>count)
{
for(i=1; i<=count; i++)
{
printf(" %d",a[i]);
}
}
else
{
if(count%2 == 0)
{
k = count/2;
for(i=k-C+1; i<=k+C; i++)
{
printf(" %d",a[i]);
}
}
else
{
k = count/2+1;
for(i=k-C+1; i<=k+C-1; i++)
{
printf(" %d",a[i]);
}
}
}
printf("\n\n");
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: