只包含因子2,3,5的正整数被称作丑数,比如4,10,12都是丑数,而7,23,111则不是丑数,另外1也不是丑数。请编写一个函数,输入一个整数n,能够判断该整数是否为丑数,如果是,则输出True,否则输出False
1.思路一是根据1到n中除了能被2,3,5整除是否还能被以外的数整除。
#include<iostream>
using namespace std;
int main()
{
int n, count=0,result=0;
cin >> n;
if (n == 1)
cout << "False";
else if (n == 2 || n == 3||n==5)
cout << "True";
else{
for (int i = 2; i <n; i++){
if (n%i != 0) count++;
if (n%i == 0 && (i % 2 != 0 && i % 3 != 0 && i % 5 != 0)){
result = 1; break;//超过一行代码,一定要放到大括号里面
}
}
if (count == n - 2)
cout << "False";
else if (result == 1)
cout << "False";
else
cout << "True";
}
return 0;
}
2.思路
int Judge(int n){
int k = n;
while(k != 1){
if(n % 2 == 0){
n /= 2;
}else if(n % 3 == 0){
n /= 3;
}else if(n % 5 == 0){
n /= 5;
}else{
return 0;
}
k = n;
}
return 1;
}