查找介于n1与n2(0<n1<n2<32768)之间所有满足下列条件的整数:
(1)该数的十进制表示中有且仅有两个相同的数字位;
(2)该数是素数。
今天我们要写的程序如题
下面附上我的代码
#include <stdio.h>
int prime(int n)
{
int temp;
int i;
temp = sqrt(n);
for(i = 2; i <= temp; i++)
{
if(n % i == 0)
{
return 0;
}
}
if(i > n)
{
return 1;
}
}
int two_cmp(int n )
{
int k = 0;
int len = 0;
int a[5] = {0};
int i;
int j;
while(n != 0)
{
a[len] = n % 10;
n = n / 10;
len++;
}
for(i = 0; i < len -1; i++)
{
for(j = i + 1; j < len; j++)
{
if(a[i] == a[j])
{
k = k + 1;
}
}
}
if(k == 1)
{
return 1;
}
else
{
return 0;
}
}
int main()
{
int a,b;
int n;
int num = 0;
printf("please input two numbers!\n");
scanf("%d%d",&a,&b);
for(n = a; n <= b; n++)
{
if(two_cmp(n) && prime(n))
{
printf("%5d",n);
num++;
if(num % 10 == 0)
{
printf("\n");
}
}
}
printf("\n");
return 0;
}
运行截图明天再补