【题目描述】
小明刚刚学习了如何计算长方形面积。他发现,如果一个长方形的长和宽都是整数,它的面积一定也是整数。现在,小明想知道如果给定长方形的面积,有多少种可能的长方形,满足长和宽都是整数?
如果两个长方形的长相等、宽也相等,则认为是同一种长方形。约定长方形的长大于等于宽。正方形是长方形的特例,即长方形的长和宽可以相等。
【输入】
输入一行,包含一个整数A,表示长方形的面积。约定2≤A≤1000。
【输出】
输出一行,包含一个整数C,表示有C种可能的长方形。
【输入样例1】
4
【输出样例1】
2
【样例输入 2】
6
【样例输出 2】
2
【样例解释 1】
长方形面积为 4,它们的长宽分别为2×2、4×1。
【样例解释 2】
长方形面积为 6,它们的长宽分别为3×2、6×1。

#include<iostream>
#include<cmath>
using namespace std;
int main() {
    int area = 0, count = 0;
    cin >> area;
    for (int i = 1; i <= sqrt(area); i++)
    {
        if (area%i==0)
        {
            count += 1;
        }
    }
    cout << count << endl;
    return 0;
}

解释:
这个题目其实和求一个数的因数是类似的,比如我们求8的因数,8可以拆成1x8,或者2x4.
我们只需要从1开始遍历到面积area,如果面积能整除这个数,说明长和宽都是整数,就让计数器count+1
为什么循环条件可以优化到面积开平方呢?
例如数字9,开始的1x9和最后的9x1是重复的,这其实是一种情况,我们不需要重复计数,但是注意这里需要加上等于号,例如9就存在3x3的情况,3刚好是9开平方.