资源限制
内存限制:256.0MB C/C++时间限制:5.0s Java时间限制:15.0s Python时间限制:25.0s
问题描述
有一些正整数,如果这个正整数分解质因数之后,只包含2或3或5,那么该数即为“丑数”,比如100就是“丑数”,100分解质因数之后只包含2和5;14就不是“丑数”,因为14分解质因数之后,包含了7.
输入正整数n,请写程序判断n是否是“丑数”,是“丑数”则输出“yes”,否则输出“no”。
输入格式
一个正整数n
输出格式
一个字符串yes 或no
样例输入
15
样例输出
yes
样例输入
242
样例输出
no
数据规模和约定
n不超过C语言整型范围
#include<iostream>
using namespace std;
const int N=100;
int prime[N];
int cnt;
int main(){
int n;
cin>>n;
for(int i=2;i<=n/i;i++){
if(n%i==0){
while(n%i==0){
n=n/i;
}
prime[cnt++]=i;
}
}
if(n>1) prime[cnt++]=n;
if(cnt==1&&(prime[0]==2||prime[0]==3||prime[0]==5)){
cout<<"yes"<<endl;
}else if(cnt==2&&(prime[0]==2&&prime[1]==3||prime[0]==2&&prime[1]==5||prime[0]==3&&prime[1]==5)){
cout<<"yes"<<endl;
}else if(cnt==3&&prime[0]==2&&prime[1]==3&&prime[2]==5){
cout<<"yes"<<endl;
}else{
cout<<"no"<<endl;
}
return 0;
}
思路:分解质因数。