金仙花數


題目描述:

定義金仙花數 x 滿足以下性質:

X 的各個數位之和大於等於 20,且 x 的各個數位乘積大於等於 162 。

給定 n ,求小於等於 n 的金仙花數個數。

輸入格式:

一個正整數 n 。

輸出格式:

一個數表示答案。

樣例輸入1:

299

樣例輸出1:

1

約定:

1<=n<=100000

#include<bits/stdc++.h>
using namespace std;
int pxy(int m){
    int a[7]={0};
    int n=m;
    int k=0;
    int b[7];
    for(int i=1;i<=6;i++){
        a[i]=n%10;
        n=n/10;
    }
    for(int i=1;i<=6;i++){
        k+=a[i];
    }
    return k;
}
int fzm(int m){
    int a[5]={0};
    int n=m;
    int k=1;
    int b[5]={0};
    for(int i=0;i<=5;i++){
        a[i]=n%10;
        if(n>0&&a[i]>=0){
            b[i]=1;
        }
        n=n/10;
    }
    for(int i=0;i<=5;i++){
        if(b[i]==1){
            k=k*a[i];
        }
    }
    return k;
}
int main(){
    int n,ans=0;
    cin>>n;
    for(int i=1;i<=n;i++){
        int l1=fzm(i);
        int t1=pxy(i);
        if(l1>=162){
            if(t1>=20){
                ans++;
            }
        }
    }
    cout<<ans<<endl;
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM