0
点赞
收藏
分享

微信扫一扫

3596、三除数

给你一个整数 n 。如果 n 恰好有三个正除数 ,返回 true ;否则,返回 false 。


如果存在整数 k ,满足 n = k * m ,那么整数 m 就是 n 的一个 除数 。



示例 1:


输入:n = 2

输出:false

解释:2 只有两个除数:1 和 2 。

示例 2:


输入:n = 4

输出:true

解释:4 有三个除数:1、2 和 4 。


提示:


1 <= n <= 104


链接:https://leetcode-cn.com/problems/three-divisors

著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

package cn.fansunion.leecode.math;

/**

* 1952. 三除数<br/>

* 给你一个整数 n 。如果 n 恰好有三个正除数 ,返回 true ;否则,返回 false 。

如果存在整数 k ,满足 n = k * m ,那么整数 m 就是 n 的一个 除数 。

来源:力扣(LeetCode)

链接:力扣

著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

* @author wen.lei@brgroup.com

*

* 2022-3-9

*/

public class ThreeDivisors {

/* 示例 1:



输入:n = 2

输出:false

解释:2 只有两个除数:1 和 2 。

示例 2:



输入:n = 4

输出:true

解释:4 有三个除数:1、2 和 4 。





提示:



1 <= n <= 104*/

/**

* 恰好有三个正除数:1个数肯定,有1和自己本身至少2个除数(1除外);有且只有3个,就是1到n,(1,n)之间有且仅有1个除数

* @param n

* @return

*/

public boolean isThree(int n) {

//(1,n)之间有且仅有1个除数

int count=0;

for(int i=2;i<n;i++) {

if(n%i==0) {

count++;

}

}

return count==1;

}

}

package test.leecode.math;

import org.junit.Assert;

import org.junit.Test;

import cn.fansunion.leecode.math.ThreeDivisors;

/**

* @author wen.lei@brgroup.com

*

* 2022-2-25

*/

public class ThreeDivisorsTest {

@Test

public void test() {

ThreeDivisors test = new ThreeDivisors();

Assert.assertFalse(test.isThree(1));

Assert.assertFalse(test.isThree(2));

Assert.assertFalse(test.isThree(3));

Assert.assertTrue(test.isThree(4));

Assert.assertFalse(test.isThree(5));

Assert.assertFalse(test.isThree(6));

Assert.assertFalse(test.isThree(16));

Assert.assertTrue(test.isThree(25));

Assert.assertFalse(test.isThree(124));

}

}

举报

相关推荐

0 条评论