/**************************************************
filename :c.cpp
author :maksyuki
created time :2018/6/11 0:08:30
last modified :2018/6/11 9:51:42
file location :C:\Users\abcd\Desktop\TheEternalPoet
***************************************************/
#pragma comment(linker, "/STACK:102400000,102400000")
#include <set>
#include <bitset>
#include <list>
#include <map>
#include <stack>
#include <queue>
#include <deque>
#include <string>
#include <vector>
#include <ios>
#include <iostream>
#include <fstream>
#include <sstream>
#include <iomanip>
#include <algorithm>
#include <utility>
#include <complex>
#include <numeric>
#include <functional>
#include <cmath>
#include <ctime>
#include <climits>
#include <cstdarg>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <cctype>
#include <cassert>
using namespace std;
#define CFF freopen ("in", "r", stdin)
#define CFO freopen ("out", "w", stdout)
#define CPPFF ifstream cin ("in")
#define CPPFO ofstream cout ("out")
#define DB(ccc) cout << #ccc << " = " << ccc << endl
#define DBT printf("time used: %.2lfs\n", (double) clock() / CLOCKS_PER_SEC)
#define PB push_back
#define MP(A, B) make_pair(A, B)
typedef long long LL;
typedef unsigned long long ULL;
typedef double DB;
typedef pair <int, int> PII;
typedef pair <int, bool> PIB;
const int INF = 0x7F7F7F7F;
const int MOD = 1e9 + 7;
const double EPS = 1e-10;
const double PI = 2 * acos (0.0);
const int maxn = 1e5 + 6666;
int n;
bool is_have = false;
bool dig[16];
bool vis[16];
void dfs(int p, string sa) {
if(p == 6) {
int v = stoi(sa);
int tt = v * n;
string sb = to_string(tt);
if(sb.size() <= 5) {
bool is_valid = true;
for(int i = 0; i < 16; i++)
vis[i] = dig[i];
for(int i = 0; sb[i]; i++) {
if(vis[sb[i]-'0']) {
is_valid = false;
break;
}
else
vis[sb[i]-'0'] = true;
}
if(is_valid) {
is_have = true;
if(sb.size() == 4) {
if(!vis[0])
cout << "0" << sb << " / " << sa << " = " << n << endl;
}
else
cout << sb << " / " << sa << " = " << n << endl;
}
}
return ;
}
for(int i = 0; i <= 9; i++)
if(!dig[i]) {
dig[i] = true;
dfs(p + 1, sa + to_string(i));
dig[i] = false;
}
}
int main()
{
#ifdef LOCAL
CFF;
//CFO;
#endif
bool is_first = true;
while(cin >> n) {
if(!n) break;
is_have = false;
memset(dig, false, sizeof(dig));
if(is_first) is_first = false;
else cout << endl;
dfs(1, "");
if(!is_have)
cout << "There are no solutions for " << n << "." << endl;
}
return 0;
}