/*查找介于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;
}
C语言编程练习——查找介于n1与n2(0<n1<n2<32768)之间所有满足下列条件的整数:
最新推荐文章于 2025-05-01 21:02:44 发布