通过学习信息学,你肯定知道什么是奇数,什么是约数,既是奇数又是约数,我们就称其为奇约数(提醒你,这里肯定不包括负数的情况啊),现在给你一个正整数n,请你统计n有多少个奇约数。
仅一行,包含一个正整数n。
仅一行,包含一个整数,表示n的奇约数的个数。
13
2
9
3
1≤n≤109
#include<bits/stdc++.h>
using namespace std;
int main(){
int n;
cin>>n;
int l=1,t=0;
for(int i=2;i<=n;i++){
if(i>n){
break;
}
t=0;
if(n%i==0){
if(i==2){
while(n%i==0){
n/=i;
}
}
else{
while(n%i==0){
n/=i;
t++;
}
l*=(t+1);
}
}
}
cout<<l;
return 0;
}
有两个点TLE,请大佬指教如何优化