查找介于n1与n2(0<n1<n2<32768)之间所有满足下列条件的整数: (1)该数的十进制表示中有且仅有两个相同的数字位; (2)该数是素数

来源:互联网 发布:电玩巴士官方淘宝店 编辑:程序博客网 时间:2024/05/29 07:01
#include <stdio.h>void fun(int n1,int n2);//查找n1到n2的素数void fun1(int n);//判断该素数的十进制表示里,如果只有2位相同,则输出void fun(int n1,int n2){int i;int j;for (i = n1; i <= n2; i++){for (j = 2; j < i; j++)//如果能被J整除则退出循环{if (i % j == 0){break;}}if (j == i)//如果退出循环时,i=j,则该数为素数{fun1(i);//进行另一个条件的判断}}}void fun1(int n){int i=0; int j;int m = n;int s[5];int count = 0;//素数的十进制位数计数int flog = 0;//含有相同位数的个数的计数while (m != 0)//将素数的各位存储在数组里,便于判断相同的数值{s[i] = m % 10;m = m / 10;i++;count++;}for (i = 0; i < count - 1; i++)//选择法比较{for (j = i + 1; j < count; j++){if (s[i] == s[j]){flog++;}}}if (flog == 1)//只有2位相同输出该素数{printf("%d ",n);}}int main(){int n1;int n2;printf("Enter n1 and n2(0<n1<n2<32768)!\n");scanf("%d%d",&n1,&n2);printf("The result!\n");fun(n1,n2);printf("\n");    return 0;}

0 0
原创粉丝点击