#include <iostream>
#include <sstream>
#include <string>
#include <algorithm>
#include <random>

using namespace std;

int fouriest_transform(int num)
{
	static const char FOUR = '4';
	
	string result = to_string(num);
	replace(result.begin(), result.end(), '0', FOUR);
	replace(result.begin(), result.end(), '1', FOUR);
	replace(result.begin(), result.end(), '2', FOUR);
	replace(result.begin(), result.end(), '3', FOUR);
	replace(result.begin(), result.end(), '4', FOUR);
	replace(result.begin(), result.end(), '5', FOUR);
	replace(result.begin(), result.end(), '6', FOUR);
	replace(result.begin(), result.end(), '7', FOUR);
	replace(result.begin(), result.end(), '8', FOUR);
	replace(result.begin(), result.end(), '9', FOUR);
	
	return stoi(result);
}

int main()
{
	default_random_engine rng;
	uniform_int_distribution<int> distr(500, 999999999);
	int num;
	
	cout << (num = distr(rng)) << " -> " << fouriest_transform(num) << endl;
	cout << (num = distr(rng)) << " -> " << fouriest_transform(num) << endl;
	cout << (num = distr(rng)) << " -> " << fouriest_transform(num) << endl;
	cout << (num = distr(rng)) << " -> " << fouriest_transform(num) << endl;
	cout << (num = distr(rng)) << " -> " << fouriest_transform(num) << endl;
	
	return 0;
}
