直接从2到n枚举,能整除的就判断有无4和7就好了! 1 #include2 #include 3 4 using namespace std; 5 6 bool f(int n) 7 { 8 while(n) 9 {10 if(n % 10 != 4 && n % 10 != 7)11 return false;12 n /= 10;13 }14 return true;15 }16 17 int main()18 {19 int n;20 21 while(cin >> n)22 {23 int flag=0;24 for(int i=2; i<=n; i++)25 {26 if(n % i == 0)27 {28 if(f(i))29 {30 flag=1;31 }32 }33 }34 if(flag)35 cout << "YES" << endl;36 else37 cout << "NO" << endl;38 }39 40 return 0;41 }