範例程式碼 uva725
//uva725
#include <iostream>
#include <cstdlib>
#include <iomanip>
using namespace std;
bool isnonrepeat(int a, int b){
int n[10];
if (a < 10000 && b < 10000)return false;
for(int i = 0; i < 10; ++i)n[i] = 0;
if (a < 10000 || b < 10000)n[0] = 1;
while (a > 0){
if (n[a % 10] == 1)return false;
else n[a % 10] = 1;
a /= 10;
}
while (b > 0){
if (n[b % 10] == 1)return false;
else n[b % 10] = 1;
b /= 10;
}
return true;
}
int main(){
int n;
int a;
bool ans;
bool start = true;
while (cin >> n){
if (n == 0)break;
if (!start)cout << endl;
start = false;
ans = false;
for (int i = 1234; i < 49876; ++i){
a = i * n;
if (a > 99999)continue;
else {
if (isnonrepeat(a, i)){
ans = true;
cout << setw(5) << setfill('0') << a;
cout << " / ";
cout << setw(5) << setfill('0') << i;
cout << " = " << n << endl;
}
}
}
if (!ans){
cout << "There are no solutions for " << n << "." << endl;
}
}
return 0;
}