#include "stdafx.h"
#include<stdio.h>
#include<iostream>
#include<vector>
#include<string>
#include<sstream>
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
int n, d;
cin >> n >> d;
int tmpn = n;
int tmpd = d;
int x = 0;
while (tmpd%10 ==0)
{
tmpd /= 10;
x++;
}
while (tmpd%5==0)
{
tmpd /= 5;
tmpn *= 2;
x++;
}
while (tmpd%2==0)
{
tmpd /= 2;
tmpn *= 5;
x++;
}
// zcbf 0
string zcbf = "";
stringstream yy;
int res_int = tmpn / tmpd;
if (res_int != 0){
float tmp = res_int * pow(0.1, x);
if (int(tmp) != tmp)
{
string tmpy = "";
cout << tmp;
yy << tmp;
yy >> tmpy;
zcbf += tmpy;
yy.clear();
}
else
{
cout << tmp << ".";
zcbf += ".";
}
}
else{
if (x != 0){
cout << "0.";
zcbf += "0.";
while (x--) { cout << "0"; zcbf += "0"; };
}
else{
cout << "0.";
zcbf += "0.";
}
}
// xhj
tmpn = tmpn % tmpd;
int k = tmpn;
string xhj = "";
stringstream ss;
if (tmpn != 0){
cout << "(";
while (true)
{
string tmpx;
tmpn *= 10;
cout << tmpn / tmpd;
ss << tmpn / tmpd;
ss >> tmpx;
xhj += tmpx;
ss.clear();
tmpn %= tmpd;
if (tmpn == k){
cout << ")";
break;
}
}
}
cout << endl;
//qcfxhj
if (!xhj.empty()){
auto pos = zcbf.find(xhj);
while (pos != string::npos){
zcbf.erase(pos, pos + xhj.size());
pos = zcbf.find(xhj);
}
cout << zcbf + "(" + xhj + ")" << endl;
}
else{
cout << zcbf << endl;
}
//cout << zcbf << endl;
//cout << n << d<< a << endl;
//cout << zcbf + "(" + xhj + ")" << endl;
return 0;
}
09-20
09-20
09-20