这道题是常见的智力题。其实是问5~100任意范围内因数个数为奇数的数有多少个,这样的数实际上都是平方数,比如1, 4, 9, 16, 25...。这是由于因数个数计算公式是,对任意整数n,假设n能分解成n=p1^{i1}p2{i2}...那么因数个数是(i1 + 1)(i2+1)...。因数个数为奇数意味着i1,i2...都是偶数,也就是说这个数n是平方数。
1218 | Accepted | 696K | 0MS | G++ | 505B |
/*
ID: thestor1
LANG: C++
TASK: poj1218
*/
#include <iostream>
#include <fstream>
#include <cmath>
#include <cstdio>
#include <cstring>
#include <limits>
#include <string>
#include <vector>
#include <list>
#include <set>
#include <map>
#include <queue>
#include <stack>
#include <algorithm>
#include <cassert>
using namespace std;
int main()
{
int T;
cin >> T;
for (int t = 0; t < T; ++t)
{
int n;
cin >> n;
cout << (int)sqrt(n) << endl;
}
return 0;
}