1952三除数

leetcode题号1952。

题目意思是指给定一整数 n,求其整数因数,若恰好满足整数因数为3个,返回 ture,否则返回 false。

题解如下:

bool isThree(int n) {
    int mid = 1;
    for(int i = 1;i<n;i++)
    {
        if(n%i==0)
        {
            mid++;
            if(mid>3)
            return false;
        }
    }
    return mid==3;
}

首先创建一个变量 mid ,用以记录有多少个整数因数,因为数字本身就是自己的因数,可以直接给mid = 1。

循环从1开始到n,由于mid=1所以无需再判断当 i == n 的情况了。

每循环一次判断n是否能被i除尽,即 n % i 是否为0,若是则说明 i 是n的一个整数因数,此时mid++记录次数。

若mid在循环未结束时已不满足 “ 恰好有三个正除数 ” 的条件,此时可在循环内直接返回 false。

循环走出后,需判断 mid 是否<3,若小于则返回 false,等于则返回 true。

由于返回类型为 bool,可直接return mid == 3。

至此,题解。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值