判断一个数是否是丑数

男娘i 2022-06-08 01:23 328阅读 0赞

丑数定义:只包含因子2、3、5的数,称之为“丑数”。一般地,1为第一个丑数,1,2,3,4,5,6,8,9,10,12,15,16,18是最前面的13个丑数

判断一个数是否是丑数,实现代码如下:

  1. bool isUgly(int num){
  2. if(num<=0)
  3. return false;
  4. while(num%2==0) num/=2;
  5. while(num%3==0) num/=3;
  6. while(num%5==0) num/=5;
  7. if(num==1){
  8. return true;
  9. }
  10. else
  11. return false;
  12. }

给定一个正整数N,输出第N个丑数:

  1. #include<iostream>
  2. using namespace std;
  3. bool isUgly(int num){
  4. if(num<=0)
  5. return false;
  6. while(num%2==0) num/=2;
  7. while(num%3==0) num/=3;
  8. while(num%5==0) num/=5;
  9. if(num==1){
  10. return true;
  11. }
  12. else
  13. return false;
  14. }
  15. int main(){
  16. int N,k;
  17. while(cin>>N){
  18. k=0;
  19. for(int i=1;i<10000;i++){
  20. if(isUgly(i)){
  21. ++k;
  22. if(k==N){
  23. cout<<i<<endl;
  24. break;
  25. }
  26. }
  27. }
  28. }
  29. return 0;
  30. }

发表评论

表情:
评论列表 (有 0 条评论,328人围观)

还没有评论,来说两句吧...

相关阅读

    相关 判断一个是否

    丑数定义:只包含因子2、3、5的数,称之为“丑数”。一般地,1为第一个丑数,1,2,3,4,5,6,8,9,10,12,15,16,18是最前面的13个丑数。  判断一个数是

    相关 c#判断一个是否素数

    素数是只能被1或本身整除,且不能为其他两个整数的乘积。1、2、3本身就是素数,判断一个数是否为素数,只需要用这个值依次除以2到它的开方数,如果其中有一个数可以整除,那么该值不为