C语言实现:判断偶数是否为两个素数之和
C语言实现:判断偶数是否为两个素数之和
本文提供了一个C语言程序,用于判断一个给定的偶数是否可以表示为两个素数的和。
#include <stdio.h>
int isPrime(int n) {
// 判断素数,如果是素数返回1,不是素数则返回0
if (n <= 1) {
return 0;
}
for (int i = 2; i * i <= n; i++) {
if (n % i == 0) {
return 0;
}
}
return 1;
}
int findSmallerPrime(int num) {
// 将偶数num表示为两个素数之和,返回其中较小的素数
int prime1 = 0, prime2 = 0;
for (int p = 2; p <= num / 2; p++) {
if (isPrime(p) && isPrime(num - p)) {
prime1 = p;
prime2 = num - p;
break;
}
}
return (prime1 < prime2) ? prime1 : prime2;
}
int main() {
int num;
printf('Enter an even number: ');
scanf('%d', &num);
if (num % 2 != 0) {
printf('Invalid input! Please enter an even number.\n');
return 0;
}
int smallerPrime = findSmallerPrime(num);
if (smallerPrime == 0) {
printf('%d cannot be expressed as the sum of two prime numbers.\n', num);
} else {
printf('The smaller prime number that can represent %d as the sum of two prime numbers is: %d\n', num, smallerPrime);
}
return 0;
}
代码解析:
-
isPrime(int n)函数:- 接收一个整数
n作为参数。 - 判断
n是否为素数。 - 如果
n是素数,则返回1,否则返回0。
- 接收一个整数
-
findSmallerPrime(int num)函数:- 接收一个偶数
num作为参数。 - 寻找两个素数,它们的和等于
num。 - 返回这两个素数中较小的一个。
- 接收一个偶数
-
main()函数:- 从用户那里获取一个偶数。
- 调用
findSmallerPrime()函数来查找构成该偶数的较小的素数。 - 打印结果,显示该偶数是否可以表示为两个素数的和,以及较小的素数。
示例:
如果用户输入偶数 10,程序将输出:
The smaller prime number that can represent 10 as the sum of two prime numbers is: 3
结论:
这个C语言程序有效地判断了一个偶数是否可以表示为两个素数之和,并返回了构成该偶数的较小素数。程序逻辑清晰,代码简洁易懂。
原文地址: https://www.cveoy.top/t/topic/kuu 著作权归作者所有。请勿转载和采集!