题解 | #约数的个数#

约数的个数

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

#include <stdio.h>
#include <math.h>

int count_divisors(int num) {
    int count = 0;
    int sqrt_num = (int)sqrt(num);
    for (int i = 1; i <= sqrt_num; i++) {
        if (num % i == 0) {
            // 如果i是因子,那么num/i也是因子
            count += 2;
            // 如果i*i等于num,说明num是一个完全平方数,避免重复计数
            if (i * i == num) {
                count--;
            }
        }
    }
    return count;
}

int main() {
    int N;
    scanf("%d", &N); // 读取整数数量

    while (N--) {
        int num;
        scanf("%d", &num); // 读取每个整数
        printf("%d\n", count_divisors(num)); // 输出约数个数
    }

    return 0;
}

全部评论

相关推荐

面了这么多场试,总有公司总喜欢压力面一个小时面试+手撕,哪里不会就点哪里,说了不会不会还继续追着问不尊重求职者,稍微有些细节记不清了,就开始怀疑项目真实性以及人格让求职者开摄像头但是自己不开,说话声音还贼小,pardon几次就开始不耐烦的不知道这个算不算,手撕的时候,面试官人跑了。。。最后快结束才来
一纸丿繁华丶:你换位思考一下,自己在职场被领导push麻了,身心俱疲,现在有个机会让你放松一下,体验一把上位者的感觉,还能看着那些高学历人才、未来自己的竞争者,抓耳挠腮、手足无措的样子,没给你当场笑出来就不错了,理解一下面试官吧。
点赞 评论 收藏
分享
04-25 18:13
五邑大学 Java
后来123321:大二两段实习太厉害了,我现在大二连面试都没有
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务