#一、题目
#二、个人理解
此题本质上就是考素数判断。
思想很简单,但是最大数会运行超时。这里介绍一种简单的素数,即只对奇数进行判断,并对数进行一次开方。
在此我希望大家即使不掌握高深的素数判断算法,也应该掌握这个简单又实用的算法。
C语言:
#include <stdio.h>
int is_prime(int n)
{
if (n < 2) {
return 0;
}
if (n == 2 ) {
return 1;
}
if (n % 2 == 0) {
return 0;
}
for (int i = 3; i * i <= n; i += 2) {
if (n % i == 0) {
return 0;
}
}
return 1;
}
int main()
{
int n;
scanf("%d", &n);
for (int i = 2; i < n ; i ++) {
if (is_prime(i) && is_prime(n - i)) {
printf("%d = %d + %d", n, i, n - i);
break;
}
}