18_有关循环结构的综合实例

来源:互联网 发布:wifi监控器软件下载 编辑:程序博客网 时间:2024/06/04 23:30
//_18_综合实例//_18_main.cpp//有关循环结构的综合实例//任意给出一个数,判断其是否为素数,如果是,找出组成该素数的基本元素#include <stdio.h>#include <stdlib.h>#include <math.h>//判断一个数是否是素数bool judgePrimeNumber(int);//判断一个素数是否可以分解成两个素数之和bool judgeBasicElement(int);int main(){int num;//要输入的元素printf("please input a integer:");scanf("%d",&num);if(num<=1)printf("input data error");else{if(!judgePrimeNumber(num))//如果num不是素数情况{printf("%d不是素数.\n",num);if(num%2==0)//num为偶数情况{printf("%d是偶数,下面来看是否可以分解成两个素数之和...\n",num);if(!judgeBasicElement(num))printf("%d不能分解成两个素数之和.\n",num);else{for(int i=2;i<(num/2);i++){if(judgePrimeNumber(i)&&judgePrimeNumber(num-i)){printf("%d = %d + %d.\n",num,i,num-i);continue;}elsecontinue;}}}}else if(!judgeBasicElement(num))//num是素数但不可以分解成两个素数之和的情况printf("%d是素数但不可以分解成两个素数之和.\n",num);else{printf("%d是素数,并且可以分解成两个素数之和:\n",num);for(int i=2;i<(num/2);i++){if(judgePrimeNumber(i)&&judgePrimeNumber(num-i)){printf("%d = %d + %d.\n",num,i,num-i);continue;}elsecontinue;}}}system("pause");return 0;}//判断一个数是否是素数bool judgePrimeNumber(int number){if(number==1)return false;else if(number==2)return true;else{for(int i=2;i<number;i++){if(number%i!=0)continue;elsereturn false;}return true;}}bool judgeBasicElement(int number){int p=2;int q=number-p;while(p<number)//p==2的时候输出为false{//当p、q有一个不是素数,且p小于num时if(!judgePrimeNumber(p)||!judgePrimeNumber(q)){p=p+1;q=number-p;}elsereturn true;}return false;}

0 0
原创粉丝点击