#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;
}
查找介于n1与n2(0<n1<n2<32768)之间所有满足下列条件的整数: (1)该数的十进制表示中有且仅有两个相同的数字位; (2)该数是素数
最新推荐文章于 2023-05-14 13:32:22 发布