PKU 2853 Sequence Sum Possibilities

/*
用等差数列公式推导
*/

#include 
< iostream >
#include 
< cmath >
using   namespace  std;

int  main()
{
    
int  cas, cnt, number;
    
int  sum, n;
    
int  neck;
    
    scanf(
" %d " & cas);
    
    
while  (cas -- )
    {
        cnt 
=   - 1 ;
        scanf(
" %d %d " & number,  & sum);
        
        neck 
=  ( int )sqrt(sum + 0.001 *   2 ;
        
        
for  (n  =   1 ; n  <=  neck; n ++ )
        {
            
if  ((sum  *   2 %  n  ==   0
                
&&  sum  *   2   /  n  +   1   -  n  >   0
                
&&  (sum  *   2   /  n  +   1   -  n)  %   2   ==   0
                )
                cnt
++ ;
        }   
        printf(
" %d %d\n " , number, cnt);
    }
    
return   0 ;
}

你可能感兴趣的:(sequence)