Limite de recursos
Limite de memória: 256,0 MB Limite de tempo C/C++: 5,0s Limite de tempo Java: 15,0s Limite de tempo Python: 25,0s
Descrição do problema
Existem alguns números inteiros positivos, se o número inteiro positivo for decomposto em fatores primos, ele contém apenas 2 ou 3 ou 5 , então o número é um "número feio". Por exemplo, 100 é um "número feio". Depois de decompor os fatores primos de 100, ele contém apenas 2 e 5; 14 não é um "número feio", porque depois de decompor os fatores primos de 14, ele contém 7.
Entrada Para um número inteiro positivo n, escreva um programa para julgar se n é um "número feio", se for um "número feio", produza "sim", caso contrário, produza "não".
Formato de entrada
Um número inteiro positivo n
Formato de saída
Uma string sim ou não
amostra de entrada
15
amostra de saída
sim
amostra de entrada
242
amostra de saída
sem
tamanho de dados e concordância
n não excede o intervalo de números inteiros da linguagem C
#include<iostream>
using namespace std;
int n,result=1,yinzi[10],pos,flag;
bool Ifprime(int n){
for(int i = 2;i<=n/2;i++){
if(n%i==0)
return false;
}
return true;
}
int main(){
cin >> n;
int temp = n;
for (int i = temp/2; i>1; i--)
{
if(n%i==0 && Ifprime(i)){
yinzi[pos++] = i;
result*=i;
}
}
if(result == n)
for(int i = 0;i<pos;i++){
if(yinzi[i]==2 || yinzi[i]== 3 || yinzi[i]==5)
continue;
else
flag = 1;
}else{
cout<<"no";
return 0;
}
if(!flag)
cout<<"yes";
else
cout<<"no";
return 0;
}