丑数

丑数

题目描述

  只包含因子2,3,5的正整数被称作丑数,比如4,10,12都是丑数,而7,23,111则不是丑数,另外1也不是丑数。请编写一个函数,输入一个整数n,能够判断该整数是否为丑数,如果是,则输出True,否则输出False。

输入描述

每行输入一个正整数 n

1 <= n<= 1000000

输出描述

对于每一行输入,输出其是否为丑数,是则输出True,否则输出False

样例输入
4
7
12
样例输出
True
False
True

递归,用2、3或者5除以整数 n,然后再进行判断,不断递归,直到返回一个布尔型的结果。

C++代码如下:
 1 #include<bits/stdc++.h>
 2 using namespace std;
 3 
 4 bool ugly(unsigned n) {
 5     if (n == 1) return false;
 6     else if (n == 2 || n == 3 || n == 5) return true;
 7     if (n % 2 == 0)  ugly(n/=2);
 8     else if (n % 3 == 0)   ugly(n/=3);
 9     else if (n % 5 == 0)   ugly(n/=5);
10     else return false;
11 }
12 
13 int main() {
14     unsigned n;
15     cin >> n;
16     if (ugly(n)) cout << "True"<<endl;
17     else cout << "False" << endl;
18     return 0;
19 }
posted on 2018-05-22 19:29  Pink.Pig  阅读(394)  评论(0编辑  收藏  举报