版权声明: 本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
title: "题解 - [POJ 3361] Gaussian Prime Factors" categories:
Let $a, b, c, d$ be integers. The complex number $a+bj$, where $j^2 = -1$, is a factor of $c+dj$, if there exist integers $e$ and $f$ such that
$c + dj = (a + bj)(e + fj)$
A complex number $a + bj$ where $a$ and $b$ are integers is a Gaussian prime if the factors are $1, -1, -a - bj$ and $a + bj$ only
The following are Gaussian primes: $1 + j, 1 - j, 1 + 2j, 1 - 2j, 3$ and $7$
The Gaussian prime factors of 5 are:
$1 + 2j$ and $1 - 2j$, or
$2 + j$ and $2 - j$, or
$-1 - 2j$ and $-1 + 2j$, or
$-2 - j$ and $-2 + j$
Write a program that finds all the Gaussian prime factors of a positive integer
One line of input per case. The line represents a positive integer $n$
One line of output per test case. The line represents the Gaussian prime factors of $n$. If $a + bj$ is a Gaussian prime factor of $n$, then $a > 0$, $|b| ≥ a$, if $b ≠ 0$. If $b = 0$, the output must be $a$
2
5
6
700
Case #1: 1+j, 1-j
Case #2: 1+2j, 1-2j
Case #3: 1+j, 1-j, 3
Case #4: 1+j, 1-j, 1+2j, 1-2j, 7
Output the Gaussian prime factors in ascending order of $a$. If there are more than one factors with the same $a$, output them in ascending order of $b$ by absolute value. If two conjugate factors coexist, the one with a positive imaginary part precedes that with a negative imaginary part
Manila 2006
给出整数 $s$, 输出在 $\mathbb{Z}[j]$ 下的所有非平凡素因子, 其中 $j^2=-1$
题面的 Hint 里提到了做法, 这里简要概括一下
最后输出结果的时候要按 $a$ 升序输出, 如果对于相同的 $a$, 有多个对应的 $b\ne0$, 则按 $b$ 升序输出一组共轭的 Gauss 素数