#include "stdafx.h"
#include <stdio.h>
#include <iostream.h>
#include <math.h>
#include <memory>
int main () {
int N;
cout<<"N="; cin>>N;
int n, m;
n=int(2*log(double(N)))+2;
FILE * f;
f = fopen("answer.txt","r+");
int* arr1 = new int[n];
int* arr2 = new int[n];
int* arr = new int[2*n];
for (int i = 0; i < n; i++)
arr1[i] = (pow(2,(i+1))); //последовательность 2^k
for (int k = 0; k < n; k++)
arr2[k] = (pow(3,(k))); //последовательность 3^k
k = i = m = 0;
do { //цикл упорядочивания двух массивов по возрастанию
if (arr1[i] < arr2[k] )
arr[m++] = arr1[i++]; //Игорь мудак
else
if (arr1[i] > arr2[k])
arr[m++] = arr2[k++];
else {
arr[m++] = arr1[i++];
arr[m++] = arr2[k++];
}
} while ( i < n && k < n);
while ( i < n)
arr[m++] = arr1[i++];
while (k < n)
arr[m++] = arr2[k++];
for (m = 0; m < 2*n; m++)
{
if( arr[m] <= N) //сравнение с введенным числом N
{
fprintf(f, " %d ", arr[m]); //запись результата в файл
}
}
delete[] arr;
delete[] arr1;
delete[] arr2;
return 0;
}