C语言编程练习——查找介于n1与n2(0<n1<n2<32768)之间所有满足下列条件的整数:

来源:互联网 发布:微念科技有限公司 知乎 编辑:程序博客网 时间:2024/05/29 07:58
/*查找介于n1与n2(0<n1<n2<32768)之间所有满足下列条件的整数:(1)该数的十进制表示中有且仅有两个相同的数字位;(2)该数是素数*/#include <stdio.h>int juge_prime(int num){int i = 2;int flag = 0;for(i = 2;i < num;i++){if(num%i == 0){break;}}if(num == i){flag = 1;}return flag;}int juge_same(int num){int flag = juge_prime(num);             //判断是否为素数int buffer[5];                          //存放从个位开始的每一个数值int flag1 = 0;int count = 0;                          //记录num每个数字的个数int i = 0;int j = 0;int count1 = 0;                         //记录相同的个数if(flag == 1){while(num){buffer[count] = num%10;count++;num = num/10;}for( i = 0;i < count-1;i++){for(j = i+1;j <count;j++){if(buffer[i] == buffer[j]){count1++;}}}if(count1 == 1){flag1 = 1;}}else{flag1 = 0;}return flag1;}int main(){int num1 = 0;int num2 = 0;int flag = 0;int i = 0;printf("please input number1(0~32768):\n");scanf("%d",&num1);printf("please input number2(0~32768):\n");scanf("%d",&num2);for(i = num1;i <= num2;i++){if(juge_same(i) == 1)                         //如果i满足条件,则输出该数{printf("%d ",i);}}printf("\n");return 0;}

0 0
原创粉丝点击