私の思路

奇♂妙拆分

http://www.nowcoder.com/questionTerminal/0e6dec826f554dba828965df40abacb3

大家的思路应该非常清晰,就是枚举

我开始想从1一直到根号n,枚举下来
tip:这里提醒大家一下吧,思路清晰了再开始写,这种题本来想清楚了挺简单,但边写边想可能翻车(比如我)
最后写了个函数,开始像搜素一样搜

优秀的思路:动态的更新处理的对象,虽然我这样搜素也可,但是这个一个循环就可以解决了,我们还是从一开始枚举,每次找到因子后处理的对象就变成了n/因数
例子:12-》12(枚举1)-》6(枚举2),然后最后不要忘了加上6本身
代码如下

#include <bits/stdc++.h>
using namespace std;
int t,x;
int main() {
    cin>>t;
    while(t--){
        cin>>x; int cnt=0;
        for (int i = 1; i <sqrt(x) ; ++i) {
            if(x%i==0) {
                x=x/i;cnt++;
            }
        }
        printf("%d\n",cnt+1);
    }
    return 0;
}
全部评论

相关推荐

球球别再泡了:坏,我单9要了14
点赞 评论 收藏
分享
10-05 23:02
东北大学 Java
我说句实话啊:那时候看三个月培训班视频,随便做个项目背点八股,都能说3 40w是侮辱价
点赞 评论 收藏
分享
1 收藏 评论
分享
牛客网
牛客企业服务