【萌新发文,有错误的地方还请大家多多指教】
n 的范围为[1,1000] 可以暴力破解。
#include <iostream>
using namespace std;
bool iflucky(int x)//函数用来判断是否为幸运数字。
{
while (x > 0)
{
if (x % 10 != 4 && x % 10 != 7) return false;//看个位是否为幸运数字4或7,若不是则返回false。
x /= 10;//将数字的个位舍去并将十位变成个位
}
return true;
}
int main()
{
int a;
cin >> a;
if (iflucky(a))
{
cout << "YES";
return 0;
}//判断输入的数字本身是否为幸运数字。
for (int i = 4; i <= a/2; i++)//从最小幸运数字4开始,到最大能整除的为该数字本身的一半。
{
if (iflucky(i) && a % i == 0)
{
cout << "YES";
return 0;
}
}
cout << "NO";
return 0;
}