CCF 1024 因子个数

来源:互联网 发布:javaweb高级编程 编辑:程序博客网 时间:2024/06/05 06:03

题目

对于任意给定的一个正整数,计算其因数个数。
输入样例:
6
输出样例:
4
说明:
1、2、3、6都是6的因数。因此,输出4。

输入输出:

输入正整数N。6

输出N的因子个数。4

数据范围限制:

1<=N<2^31

分析:

如果让除数从1-N,或者1-N/2循环,时间复杂度都会太高,所以,我们取N的平方根,比如36,那么它的平方根就是6,从1开始到六,36%1==0 &&36/1 != 1,所以此时多了两个因子,36/6 ==6,所以此时因子数+1。

#include<iostream>#include<cstdio>#include<cmath>#include<cstdlib>using namespace std;int main(){    int x, i, n = 0;    cin>>x;        for(i = 1; i <= sqrt(x); ++i){            if(x % i == 0 && x / i != i){            n += 2;        } if (x % i == 0 && x / i == i){            n += 1;        }    }     cout<<n<<endl;    return 0;}
原创粉丝点击