import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.math.BigInteger;

public class Main {
    public static void main(String[] args) throws FileNotFoundException {
        PrintWriter out = new PrintWriter( // 打印流输出到复幂数.txt中
                new OutputStreamWriter(new FileOutputStream("复幂数.txt")));
        BigInteger a = BigInteger.valueOf(2); // 相当于(a+bi)*(x+yi)
        BigInteger b = BigInteger.valueOf(3); // a、b两个值一值不变
        BigInteger x = BigInteger.valueOf(2);
        BigInteger y = BigInteger.valueOf(3);
        for (int i = 2; i <= 123456; ++i) // 每次都是两组数据相乘
        {
            BigInteger t1 = a.multiply(x); // a*x
            BigInteger t2 = a.multiply(y); // a*y
            BigInteger t3 = b.multiply(x); // b*x
            BigInteger t4 = b.multiply(y); // b*y
            x = t1.subtract(t4); // i^2==-1 ax-by
            y = t2.add(t3); // bx+ay
        }
        // 由于数字太长，打印台根本输出不了，即便是输出了，也看不到，所以直接砸在控制台Ctrl+C复制即可，然后粘贴到一个txt文档中
        // 可以通过输出流或打印流输出到一个文档中即可
        out.println(x.toString() + y.toString() + "i"); // 这个题不用想y也一定是负数，要不然那么大的一个数还要判断正负？
        out.close(); // 释放资源
    }

}