金仙花數
題目描述:
定義金仙花數 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;
}