求调
  • 板块学术版
  • 楼主BoyuZhang
  • 当前回复0
  • 已保存回复0
  • 发布时间2023/11/23 14:57
  • 上次更新2023/11/23 18:46:54
查看原帖
求调
781722
BoyuZhang楼主2023/11/23 14:57

奇约数的个数[2018海淀区奥赛小学组T1]

题目描述

通过学习信息学,你肯定知道什么是奇数,什么是约数,既是奇数又是约数,我们就称其为奇约数(提醒你,这里肯定不包括负数的情况啊),现在给你一个正整数n,请你统计n有多少个奇约数。

输入格式

仅一行,包含一个正整数n。

输出格式

仅一行,包含一个整数,表示n的奇约数的个数。

样例 #1

样例输入 #1

13

样例输出 #1

2

样例 #2

样例输入 #2

9

样例输出 #2

3

提示

1≤n≤1091 \leq n \leq 10^9

我的代码

#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,请大佬指教如何优化

2023/11/23 14:57
加载中...