题目描述
通过学习信息学,你肯定知道什么是奇数,什么是约数。
如果一个数既是奇数又是约数,我们就称其为奇约数(提醒你,这里肯定不包括负数的情况啊)。
现在给你一个正整数 𝑛n ,请你统计 𝑛n 有多少个奇约数。
输入格式
仅一行,包含一个正整数 𝑛(1≤𝑛≤109)n(1≤n≤109) 。
输出格式
仅一行,包含一个整数,表示 𝑛n 的奇约数的个数。
样例 #1
样例输入 #1
13
样例输出 #1
2
代码见下:
#include <bits/stdc++.h>
using namespace std;
int main()
{
int n,cnt=0;
cin>>n;
for(int i=1;i*i<=n;i++)
{
if(n%i==0)
{
if(i%2!=0)
{
cnt++;
}
int j=n/i;
if(j!=i)
{
if(j%2!=0)
{
cnt++;
}
}
}
}
cout<<cnt;
return 0;
}