KnowBug的博客通过本文主要向大家介绍了c语言,函数等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
验证 哥德巴赫猜想(两种) (A) 任一大于2的偶数(即大于等于4的偶数),都可表示成两个素数之和。 #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<stdlib.h> int iszhi(int number) { if (number <= 1) { return 0; } else if (number == 2 || number == 3) { return 1; } else { int flag = 1; for (int i = 2; i < number - 1; i++) { if (number%i == 0) { flag = 0; break; } } return flag; } } int isou(int number) { int flag = 0; if (number % 2 == 0) { flag = 1; } return flag; } void main1() { puts("请输入一个大于等于4的偶数:"); int num; scanf("%d", &num); if (num >= 4 && isou(num)) { for (int i = 2; i <= num / 2; i++) //查询次数可以减半 { if (iszhi(i) && iszhi(num - i)) { printf("%d,%d\n", i, num - i); //break; //跳出当前所在循环 } } } else { printf("输入的数不符合题目要求!!\n"); } system("pause"); } (B) 大于等于7的奇数都可以表示成三个质数之和 int isji(int number) { if (number % 2 == 1) return 1; else return 0; } void main() { puts("请输入一个大于等于7的奇数"); int num; scanf("%d", &num); if (isji(num) && num >= 7) { for (int i = 2; i < num - 1; i++) //简单实现,没有考虑优化(大于2的偶数直接跳过等等) { for (int j = i + 1; j < num; j++) { if (iszhi(i) && iszhi(j) && iszhi(num - i - j)) { printf("%d,%d,%d\n", i, j, num - i - j); //break; //break 跳出当前循环 } } } } else puts("输入的数字不符合题目要求!!!"); system("pause"); }