题解 | #约数的个数#

约数的个数

https://www.nowcoder.com/practice/04c8a5ea209d41798d23b59f053fa4d6

一个小于根号n的约数必对应一个大于根号n的约数,因此时间复杂度可降为根号n

#include <iostream>
#include "cmath"
using namespace std;

int main() {
    int n;
    while (cin >> n) { // 注意 while 处理多个 case
        // cout << a + b << endl;
        for(int i=0;i<n;i++){
            int a;
            cin>>a;
            int num=0;
            int bound=sqrt(a);
            for(int j=1;j<=bound;j++)
            {
                if(a%j==0) num+=2;
                if(j==sqrt(a)) num-=1;
            }
            // if(a==1) num=1;
            cout<<num<<endl;
        }
    }
}
// 64 位输出请用 printf("%lld")

全部评论

相关推荐

10-17 12:16
同济大学 Java
7182oat:快快放弃了然后发给我,然后让我也泡他七天最后再拒掉,狠狠羞辱他一把😋
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务