求助 ACM PKU 1595 Prime Cuts 做男人不容易啊,需要细心

求助 ACM PKU 1595 Prime Cuts 做男人不容易啊,需要细心

http://acm.pku.edu.cn/JudgeOnline/problem?id=1595
 做男人不容易啊,需要细心,说来丢脸,这道题调试了50分钟才过。。。。
刚开始题目意思都理解有偏差,到最后判断条件又写得不对。。。唉,,太粗心了
代码如下

Source

Problem: 1595  User: lnmm
Memory: 92K  Time: 15MS
Language: C++  Result: Accepted

#include " stdio.h "
#include
" math.h "
int  p[ 2001 ];

void  main()
{
    
int n,c,n1;
    
int i,j;
    
int tol;
    
int flag;
    
while(scanf("%d%d",&n,&c)!=-1)
    
{
    
    
        p[
1]=1;
        tol
=1;
        
for(i=2;i<=3000;i++)
        
{
            flag
=1;
           
for(j=2;j<=sqrt(i);j++)
           
{
               
if(i%j==0){flag=0;break;}
           }

         
if(flag==0)continue;
         
else if(i>n)break;
         
else
         
{
             tol
++;
             p[tol]
=i;
             
         }


        }

        

        
//此时质数的个数是tol,第一个质数是1
        printf("%d %d:",n,c);
        
if(tol%2==0&&tol>=c*2)
        
{
            
for(i=1;i<=c*2;i++)
            
{
                j
=(tol-c*2)/2;
                printf(
" %d",p[j+i]);

            }

            printf(
"\n\n");
        }


        
if(tol%2==0&&tol<c*2)
        
{
            
for(j=1;j<=tol;j++)
                printf(
" %d",p[j]);
            printf(
"\n\n");
        }


        
if(tol%2==1&&tol>=c*2-1)
        
{
            
for(i=1;i<=c*2-1;i++)
            
{
                j
=(tol-c*2+1)/2;
                printf(
" %d",p[i+j]);
            }

                printf(
"\n\n");
        }


        
if(tol%2==1&&tol<c*2-1)
        
{
            
for(j=1;j<=tol;j++)
            
{
                printf(
" %d",p[j]);
            }

                printf(
"\n\n");
        }




    }

}

你可能感兴趣的:(求助 ACM PKU 1595 Prime Cuts 做男人不容易啊,需要细心)