wvvvvvvvvvvvv @ 2024-03-23 08:45:02
#include<stdio.h>
#include <stdbool.h>
bool ispa(int x) //判断回文数
{
int num[20];
int n = 0;
int i = 0;
while (x > 0)
{
num[i] = x % 10;
x /= 10;
n++;
i++;
}
if (num[i] == num[n - i])
return true;
else
return false;
}
bool ispr(int x) //判断质数
{
int i;
int num = 0;
for (i = 1; (i * i) <= x; i++)
{
num += (x % i == 0) ? 1 : 0;
}
if ((num - 1) == 0)
return true;
else
return false;
}
int main() //主函数
{
int a,b,i;
bool pa = false;
bool pr = false;
scanf("%d %d", &a, &b);
for (i = a; ((i % 2) != 0) && i <= b; i++)
{
pa = ispa(i);
if (pa)
pr = ispr(i);
if (pr)
printf("%d\n", i);
}
return 0;
}
by RockyChen @ 2024-03-23 08:51:11
不是哥们,你这个ispr
函数写错了吧
by wvvvvvvvvvvvv @ 2024-03-25 19:29:51
@RockyChen OMG 我刚刚才看见 不好意思
bool ispr(int x) //判断质数
{
int i;
int num = 0;
for (i = 1; (i * i) <= x; i++)
{
num += (x % i == 0) ? 1 : 0;
}
if ((num - 1) == 0)//除去1后判断有没有因数 是就返回true 否就返回false
return true;
else
return false;
菜菜的我脑子已经晕了 已经看不出来问题了...
by RockyChen @ 2024-03-26 16:38:35
这下对了 @wvvvvvvvvvvvv
by wvvvvvvvvvvvv @ 2024-03-26 17:18:41
@RockyChen 我现在已经全AC了耶耶耶
发现了两个最重要的错误
第一个是回文数判断的时候忘记循环了
第二个是
for(i=a;((i%2)!=0)&&i<=b;i++)
如果a是偶数直接没进入循环 i也不会++
我好菜......