Perguntas diárias sobre escovação 43

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;

}

おすすめ

転載: blog.csdn.net/weixin_47988292/article/details/130184643