HDU : 2601 (An easy problem)


// http://acm.hdu.edu.cn/showproblem.php?pid=2601

// basic idea : ( i + 1 ) ( j + 1 ) == N + 1
// condition applied, 0 < i <= j
// that is, i at least == 1
// need to find the factors of N + 1, where first one is i + 1
// so start ur loop from i = 2

// @BEGIN_OF_SOURCE_CODE

#include <iostream>
#include <cstdio>
#include <algorithm>
#include <cstring>
#include <string>
#include <cctype>
#include <stack>
#include <queue>
#include <vector>
#include <map>
#include <sstream>
#include <set>
#include <math.h>
#define N 1000000
using namespace std;

int main ()
{
    int testCase;
    scanf ("%d", &testCase);

    while ( testCase-- ) {
        long long n;
        cin >> n;

        n++;

        int len = (int) sqrt (n * 1.0);
        int cnt = 0;

        for ( int i = 2; i <= len; i++ )
            if ( n % i == 0 ) cnt++;

        printf ("%d\n", cnt);
    }

    return 0;
}

// @END_OF_SOURCE_CODE
Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s