直接从2到n枚举,能整除的就判断有无4和7就好了!
1 #include <cstdio> 2 #include <iostream> 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 else 37 cout << "NO" << endl; 38 } 39 40 return 0; 41 }