Lucky Division
题面翻译
【题目描述】Petya喜欢数字,他将4和7视为幸运数字。如果一个数能由4与7组成,他就是幸运数字,只要能被幸运数字整除的也算幸运数字!现给定一个数字,判断它是否是幸运数。
【输入格式】一个整数n(1<=n<=1000)
【输出格式】若n是幸运数或接近幸运数,输出“YES”;否则输出“NO”。(“”不用输出)
感谢@隐鬼在侧 提供的翻译
题目描述
Petya loves lucky numbers. Everybody knows that lucky numbers are positive integers whose decimal representation contains only the lucky digits 4 and 7. For example, numbers 47, 744, 4 are lucky and 5, 17, 467 are not.
Petya calls a number almost lucky if it could be evenly divided by some lucky number. Help him find out if the given number $ n $ is almost lucky.
输入格式
The single line contains an integer $ n $ $ (1<=n<=1000) $ — the number that needs to be checked.
输出格式
In the only line print “YES” (without the quotes), if number $ n $ is almost lucky. Otherwise, print “NO” (without the quotes).
样例 #1
样例输入 #1
47
样例输出 #1
YES
样例 #2
样例输入 #2
16
样例输出 #2
YES
样例 #3
样例输入 #3
78
样例输出 #3
NO
提示说明
Note that all lucky numbers are almost lucky as any number is evenly divisible by itself.
In the first sample $ 47 $ is a lucky number. In the second sample $ 16 $ is divisible by $ 4 $ .
代码内容
// #include <iostream>
// #include <algorithm>
// #include <cstring>
// #include <stack>//栈
// #include <deque>//队列
// #include <queue>//堆/优先队列
// #include <map>//映射
// #include <unordered_map>//哈希表
// #include <vector>//容器,存数组的数,表数组的长度
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
ll a[14]={4,7,44,47,74,77,444,447,474,477,744,747,774,777};
int main()
{
ll n;
cin>>n;
ll op=1;
for(ll i=0;i<14;i++)
{
if(n%a[i]==0) op=0;
}
if(op) cout<<"NO"<<endl;
else cout<<"YES"<<endl;
return 0;
}