codepad
[
create a new paste
]
login
|
about
Language:
C
C++
D
Haskell
Lua
OCaml
PHP
Perl
Plain Text
Python
Ruby
Scheme
Tcl
#include <iostream> #include <cstring> using namespace std; int vis[10]; int bk[10]; int check(int x, int y) { do { if(vis[x % 10] == 0) { return 0; } vis[x % 10]--; } while(x /= 10); do { if(vis[y % 10] == 0) { return 0; } vis[y % 10]--; } while(y /= 10); return 1; } int check4(int x) { do { if(vis[x % 10] != 0) { return 0; } vis[x % 10]++; } while(x /= 10); return 1; } int main(void) { int cnt = 0; for(int i = 1023; i <= 9876; i++) { memset(vis, 0, sizeof(vis)); if(!check4(i)) { continue; } memcpy(bk, vis, sizeof(bk)); for(int j = 1; j <= 98; j++) { memcpy(vis, bk, sizeof(bk)); if(i % j != 0) { continue; } int k = i / j; if(j > k) { continue; } if(!check(j, k)) { continue; } cout << j << " * " << k << " = " << i << endl; cnt++; } } cout << cnt << endl; }
Private
[
?
]
Run code
Submit