用c语言,编写函数funB(n),将大于2的偶数n分解为2个质数的和,求出所有质数对。函数无返回值。主函数为main() {unsigned int n; printf("输入大于2的偶数:"); scanf("%u",&n); funB(n);}
时间: 2023-06-16 10:05:08 浏览: 146
以下是用C语言编写的funB函数:
```c
#include <stdio.h>
//判断一个数是否为质数
int isPrime(int n)
{
int i;
for (i = 2; i * i <= n; i++)
{
if (n % i == 0)
return 0;
}
return 1;
}
//分解偶数为两个质数
void funB(unsigned int n)
{
int i;
for (i = 2; i <= n / 2; i++)
{
if (isPrime(i) && isPrime(n - i))
printf("%d + %d = %u\n", i, n - i, n);
}
}
int main()
{
unsigned int n;
printf("输入大于2的偶数:");
scanf("%u", &n);
funB(n);
return 0;
}
```
首先定义了一个isPrime函数,用于判断一个数是否为质数。然后在funB函数中,从2开始遍历到n/2,找出两个质数i和n-i,使得它们的和为n。如果找到了符合条件的质数对,就输出它们和n的值。最后在主函数中输入一个大于2的偶数n,调用funB函数进行分解。
相关问题
用c语言,编写函数funB(n),将大于2的偶数n分解为2个质数的和。函数无返回值。主函数为main() {unsigned int n; printf("输入大于2的偶数:"); scanf("%u",&n); funB(n);}
以下是用C语言编写的实现代码:
```c
#include <stdio.h>
#include <math.h>
int is_prime(int n) { // 判断质数函数
if (n < 2) {
return 0;
}
for (int i = 2; i <= sqrt(n); i++) {
if (n % i == 0) {
return 0;
}
}
return 1;
}
void funB(unsigned int n) {
for (int i = 2; i <= n / 2; i++) {
if (is_prime(i) && is_prime(n - i)) { // 判断两个数是否为质数
printf("%d + %d = %d\n", i, n - i, n);
return;
}
}
}
int main() {
unsigned int n;
printf("输入大于2的偶数:");
scanf("%u", &n);
funB(n);
return 0;
}
```
首先定义了一个 `is_prime` 函数,用于判断一个数是否为质数。然后在 `funB` 函数中,从2开始遍历到n/2,判断每个数和n-i是否都为质数,如果是,则输出这两个数的和等于n。最后在 `main` 函数中读入n,并调用 `funB` 函数。
用C语言完成下列任务:任务2: 哥德巴赫猜想 【任务描述】 哥德巴赫猜想是指:一个大于2的偶数等于2个质数的和。编写函数funB(n),将大于2的偶数n分解为2个质数的和。函数无返回值。主函数如下所示。程序保存到s10B.C。 main() {unsigned int n; printf("输入大于2的偶数:"); scanf("%u”,&n); funB(n); } 程序运行效果: 输入大于2的偶数:80 80=7+73=13+67=19+61=37+43
以下是用C语言完成任务2的代码:
```c
#include <stdio.h>
int isPrime(int n) {
if (n <= 1) {
return 0;
}
for (int i = 2; i * i <= n; i++) {
if (n % i == 0) {
return 0;
}
}
return 1;
}
void funB(unsigned int n) {
int i, j;
for (i = 3; i <= n / 2; i += 2) {
if (isPrime(i) && isPrime(n - i)) {
printf("%d+%d ", i, n - i);
}
}
}
int main() {
unsigned int n;
printf("输入大于2的偶数:");
scanf("%u", &n);
funB(n);
return 0;
}
```
首先定义了一个判断一个数是否为质数的函数 `isPrime`。然后在 `funB` 函数中,从3开始遍历到n/2,每次判断i和n-i是否都为质数,如果是,则输出这两个数。在主函数中,读入大于2的偶数n,然后调用 `funB` 函数进行分解。
阅读全文