#include <stdio.h>
#include <ctype.h>
#include <string.h>
#define maxN 1000000
using namespace std;
inline long long read(long long x = 0, bool flag = 0, char c = 0) {
for (c = getchar(); !isdigit(c); c = getchar())
if (c == '-')
flag = 1;
for (; isdigit(c); x = (x << 3) + (x << 1) + (c ^ 48), c = getchar());
return (flag) ? -x : x;
}
inline void write(long long x) {
if (x > 9)
write(x / 10);
putchar(x % 10 + 48);
}
inline void writeln(long long x) {
if (x < 0)
putchar('-'), write(-x);
else
write(x);
}
int minprime[maxN + 3], prime[maxN / 4], m = 0;
inline void primes(int n) {
memset(minprime, 0, sizeof(minprime));
for (register int i = 2; i <= n; i++) {
if (!(minprime[i]))
minprime[i] = i, prime[++m] = i;
for (register int j = 1; j <= m; j++)
if (prime[j] > minprime[i] || i * prime[j] > n)
break;
else
minprime[i * prime[j]] = prime[j];
}
}
int main() {
primes(1000000);
for (register int i = read(); i; i = read())
for (register int j = 1; j <= m; j++)
if (minprime[i - prime[j]] == i - prime[j]) {
writeln(i), putchar(' '), putchar('='), putchar(' '), writeln(prime[j]), putchar(' '), putchar('+'),
putchar(' '), writeln(i - prime[j]), puts("");
break;
}
return 0;
}
一本通1622:Goldbach’s Conjecture
最新推荐文章于 2025-12-02 10:59:15 发布
本文介绍了一个使用C++编写的程序,它读取输入,找出每个输入数字的最小质因数,并输出分解后的结果。程序中包含内联函数,如读取整数、写入数字和处理素数分解。
544

被折叠的 条评论
为什么被折叠?



