题目描述
只包含因子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
analysis:首先判断是否有质因子2,3,5,然后除尽,若不等于1,则结果会是其他的质数。
#include "pch.h"
#include <iostream>
using std::cout;
using std::cin;
bool uglinessNum(int n);
int main()
{
int n;
cin >> n;
if (n >= 1 && n <= 1000000)
{
if (uglinessNum(n))
{
cout << "True";
}
else
{
cout << "False";
}
}
return 0;
}
bool uglinessNum(int n)
{
if (n == 1) return false;
while (n % 2 == 0)
{
n /= 2;
}
while (n % 3 == 0)
{
n /= 3;
}
while (n % 5 == 0)
{
n /= 5;
}
return n == 1 ? true : false;
}