题目描述
小明刚刚学习了如何计算长方形面积。他发现,如果一个长方形的长和宽都是整数,它的面积一定也是整数。现在,小明想知道如果给定长方形的面积,有多少种可能的长方形,满足长和宽都是整数?如果两个长方形的长相等、宽也相等,则认为是同一种长方形。约定长方形的长大于等于宽。正方形是长方形的特例,即长方形的长和宽可以相等。
输入格式
输入一行,包含一个整数 𝐴,表示长方形的面积。约定 2≤𝐴≤1000。
输出格式
输出一行,包含一个整数 𝐶,表示有 𝐶 种可能的长方形。
其他不写了。
题目解析
长和宽都是长方形的因数(因为长*宽=长方形的面积),所以只需要找到整数 𝐴有多少组相乘恰巧等于整数 𝐴的因数就行了。而整数的因数又恰好是成对出现的(完全平方数还多一个,它的平方根),所以只需要求出整数 𝐴因数的个数,再除以二(向上取整)就行了。
代码
#include<bits/stdc++.h>
using namespace std;
#define int long long
int n,cnt=0;
signed main(){
cin>>n;
for(int i=1;i<=n;i++){
if(n%i==0){
cnt++;
}
}
if(cnt%2==0) cout<<cnt/2;
else cout<<cnt/2+1;
return 0;
}