some of case your code give wrong answer
your out put::
my AC output::3 1
3 1: 2 -858993460
cheek it carefully3 1
3 1: 2
Rajib, sust
Moderator: Board moderators
my AC output::3 1
3 1: 2 -858993460
cheek it carefully3 1
3 1: 2
Code: Select all
#include <stdio.h>
int main()
{
int prime[200]={1},n,c,i,j,num=1,x;
while(scanf("%d %d",&n,&c)!=EOF)
{
for(i=2;i<=n;i++)
{
for(j=2;j<=i;j++)
if(i%j==0 && j!=i)
{
break;
}
else if(i%j==0 && j==i)
{
prime[num]=i;
num++;
}
}
printf("%d %d:",n,c);
if(2*c>n)
{
for(x=0;x<num;x++)
printf(" %d",prime[x]);
}
else if(2*c<n && (num)%2==1)
{
{
for(x=((num/2)-(c/2-1)-1);x<(num/2+c+1)-1;x++)
printf(" %d",prime[x]);
}
}
else if(2*c<n && num%2==0)
{
{
for(x=((num/2)-c);x<(num/2+c);x++)
printf(" %d",prime[x]);
}
}
printf("\n\n");
num=1;
}
return 0;
}
Code: Select all
for(i=2;i<=n;i++)
{
for(j=2;j<=sqrt(i);j++)
if(i%j==0 && j!=i)
{
break;
}
else if(i%j==0 && j==i)
{
prime[num]=i;
num++;
}
}
lnr wrote:To peterwen1990
Thank you.That is my program problem.
Code: Select all
#include<iostream>
#include<vector>
#include<cmath>
using namespace std;
int main()
{
int m,n,sz;
int p;
vector<bool> v;
vector<int> vi;
while(cin>>m>>n)
{
vi.clear();
v.resize(m+1,0);
p=sqrt(m);
v[0]=0;
v[1]=0;
for(int i=2;i<=p;i++)
if(!v[i])
for(int j=i*i;j<=m;j+=i)
v[j]=1;
cout<<m<<" "<<n<<":";
int sum=0;
for(int i=1;i<v.size();i++)
{
if(!v[i])
{
vi.push_back(i);
}
}
sz=vi.size();
if(vi.size()%2==0)
{
if(sz/2-n/2>=0)
{
for(int i=(sz/2)-n;i<(n+sz/2);i++)
{
if(i==vi.size())
break;
cout<<" "<<vi[i];
}
}
else
{
for(int i=0;i<vi.size();i++)
cout<<" "<<vi[i];
}
}
else
{
if((sz/2)-(2*n-2)/2>=0)
{
for(int i=(sz/2)-(2*n-2)/2;i<=((2*n-2)/2+sz/2);i++)
{
if(i==vi.size())
break;
cout<<" "<<vi[i];
}
}
else
{
for(int i=0;i<vi.size();i++)
cout<<" "<<vi[i];
}
}
cout<<endl<<endl;
}
}
Code: Select all
1 1
2 1
3 2
4 3
5 2
6 3
7 2
8 2
9 2
10 9
11 9
12 4
13 4
14 3
15 8
16 13
17 10
18 16
19 14
20 17
21 20
22 8
23 9
24 15
25 2
26 3
27 7
28 1
29 14
30 10
31 10
32 24
33 32
34 15
35 18
36 4
37 11
38 34
39 18
40 27
41 35
42 33
43 32
44 10
45 12
46 43
47 40
48 21
49 22
50 15
Code: Select all
1 1: 1
2 1: 1 2
3 2: 1 2 3
4 3: 1 2 3
5 2: 1 2 3 5
6 3: 1 2 3 5
7 2: 2 3 5
8 2: 2 3 5
9 2: 2 3 5
10 9: 1 2 3 5 7
11 9: 1 2 3 5 7 11
12 4: 1 2 3 5 7 11
13 4: 1 2 3 5 7 11 13
14 3: 2 3 5 7 11
15 8: 1 2 3 5 7 11 13
16 13: 1 2 3 5 7 11 13
17 10: 1 2 3 5 7 11 13 17
18 16: 1 2 3 5 7 11 13 17
19 14: 1 2 3 5 7 11 13 17 19
20 17: 1 2 3 5 7 11 13 17 19
21 20: 1 2 3 5 7 11 13 17 19
22 8: 1 2 3 5 7 11 13 17 19
23 9: 1 2 3 5 7 11 13 17 19 23
24 15: 1 2 3 5 7 11 13 17 19 23
25 2: 5 7 11 13
26 3: 3 5 7 11 13 17
27 7: 1 2 3 5 7 11 13 17 19 23
28 1: 7 11
29 14: 1 2 3 5 7 11 13 17 19 23 29
30 10: 1 2 3 5 7 11 13 17 19 23 29
31 10: 1 2 3 5 7 11 13 17 19 23 29 31
32 24: 1 2 3 5 7 11 13 17 19 23 29 31
33 32: 1 2 3 5 7 11 13 17 19 23 29 31
34 15: 1 2 3 5 7 11 13 17 19 23 29 31
35 18: 1 2 3 5 7 11 13 17 19 23 29 31
36 4: 3 5 7 11 13 17 19 23
37 11: 1 2 3 5 7 11 13 17 19 23 29 31 37
38 34: 1 2 3 5 7 11 13 17 19 23 29 31 37
39 18: 1 2 3 5 7 11 13 17 19 23 29 31 37
40 27: 1 2 3 5 7 11 13 17 19 23 29 31 37
41 35: 1 2 3 5 7 11 13 17 19 23 29 31 37 41
42 33: 1 2 3 5 7 11 13 17 19 23 29 31 37 41
43 32: 1 2 3 5 7 11 13 17 19 23 29 31 37 41 43
44 10: 1 2 3 5 7 11 13 17 19 23 29 31 37 41 43
45 12: 1 2 3 5 7 11 13 17 19 23 29 31 37 41 43
46 43: 1 2 3 5 7 11 13 17 19 23 29 31 37 41 43
47 40: 1 2 3 5 7 11 13 17 19 23 29 31 37 41 43 47
48 21: 1 2 3 5 7 11 13 17 19 23 29 31 37 41 43 47
49 22: 1 2 3 5 7 11 13 17 19 23 29 31 37 41 43 47
50 15: 1 2 3 5 7 11 13 17 19 23 29 31 37 41 43 47
Code: Select all
#include <cstdio>
#include <iostream>
#define MAX 1001
#define sq 32
using namespace std;
int arr[MAX];
int v[MAX];
int prime[MAX];
void scive()
{
arr[0]=1;
for(int i=3;i<=sq;i+=2)
{
for(int j=2;i*j<MAX;j++)
arr[i*j]=1;
}
v[0]=0;
v[1]=1;
v[2]=2;
prime[0]=1;prime[1]=2;
int Ind=3;
for(int i=3,in=2;i<MAX;i+=2)
{
if(arr[i]!=1)
{
v[Ind]=v[Ind-1]+1;Ind++;
v[Ind]=v[Ind-1];
prime[in++]=i;
}
else
{
v[Ind]=v[Ind-1];
Ind++;
v[Ind]=v[Ind-1];
}
Ind++;
}
}
int main()
{
int n,c,mid;
scive();
while(scanf("%d%d",&n,&c)==2)
{
int start,end;
if(v[n]%2==0)
{
mid=v[n]/2;
start=v[n]/2-c+1;
end=v[n]/2+c;
}
else
{
mid=(v[n]+1)/2;
start=mid-(c-1);
end=mid+c-1;
}
if(mid<c)start=1,end=v[n];
printf("%d %d:",n,c);
for(int i=start;i<=end;i++)
cout<<" "<<prime[i-1];
cout<<endl;
}
return 0;
}
Else then everything is ok . Just add a newline after each output.Each line of output should be followed by a blank line.
Code: Select all
#include <cstdio>
#include <iostream>
#define MAX 1010
#define sq 32
using namespace std;
int arr[MAX];
int v[MAX];
int prime[MAX];
void scive()
{
arr[0]=1;
for(int i=3;i<=sq;i+=2)
{
for(int j=2;i*j<MAX;j++)
arr[i*j]=1;
}
v[0]=0;
v[1]=1;
v[2]=2;
prime[0]=1;prime[1]=2;
int Ind=3;
for(int i=3,in=2;i<MAX;i+=2)
{
if(arr[i]!=1)
{
v[Ind]=v[Ind-1]+1;Ind++;
v[Ind]=v[Ind-1];
prime[in++]=i;
}
else
{
v[Ind]=v[Ind-1];
Ind++;
v[Ind]=v[Ind-1];
}
Ind++;
}
}
int main()
{
int n,c,mid,ca=1;
scive();
while(scanf("%d%d",&n,&c)==2)
{
if(ca>1)cout<<endl; //blank line between testcase
int start,end;
if(v[n]%2==0)
{
mid=v[n]/2;
start=v[n]/2-c+1;
end=v[n]/2+c;
}
else
{
mid=(v[n]+1)/2;
start=mid-(c-1);
end=mid+c-1;
}
if(mid<(c-1))start=1,end=v[n];
printf("%d %d:",n,c);
for(int i=start;i<=end;i++)
cout<<" "<<prime[i-1];
cout<<endl;
//cout<<endl; tried this also. but no luck
ca++;
}
return 0;
}
shantanu18 wrote:still WA after change blank line. I tried also blank line after every case (cout<<endl<<endl) but both are WA! I am confused