丑数(Ugly Number)的判别和证明

丑数

只包含因子2,3,5的正整数被称作丑数,比如4,10,12都是丑数,而7,23,111则不是丑数,另外1也是丑数。即因子中的所有质数范围在{2,3,5}之间,否则则不是丑数。

判断方法

首先除2,直到不能整除为止,然后除5到不能整除为止,然后除3直到不能整除为止。最终判断剩余的数字是否为1,如果是1则为丑数,否则不是丑数。

用计算机辨别:

if(num > 0)

    for(int i = 2; i < 6; i++)

        while(num % i == 0)

            num /= i;

    return num == 1;

证明:(个人方法)

现有一数为num,其中num = n1 * n2 = n3 * n4,n1 不等于n3,n4,n2也不等于n3,n4,则可得n1/n3 = n4/n2,现在不妨假设n1为质数,且n1 不等于2,3,5,那么现在n1/n3是最简形式,n4/n2=n1/n3,要么n4=n1,n2=n3,要么n4=x* n1,n2=x* n3,那么无论怎样的乘式(=num)都可以转换成n1 * n3 * x,因为n1为质数,且不等于2,3,5,那么用这三个数除num,都不可能最终使num==1,于是得到这样一个结论,上面的程式可以判断一个数不是丑数,那么它可以判断一个数是丑数吗,首先质数不是丑数,而一个合数不是丑数,这意味着它要么没有质数因子,要么质数因子中只有2,3,5,那么它就是一个丑数,综上,上面的程式可以判断出一个数是否为丑数。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值