编译错误,求大神帮看
#include
#include
using namespace std;
int main() {
int a,b,n;
cin>>a>>b;
for(n=a;n<=b;n++)
{
bool p(long m)
{
m=n;
int s=0;
while(m>0)
{
s=s*10+m%10;
m=m/10;
}
if(s==n) return 1;
else return 0;
}
if (p==1)
{
for (int k=2;k<n;k++)
if(n%k==0)break;
if(k==n-1) cout<<n<<endl;
}
}
return 0;
}
那个头文件是有的,只是复制过来没了
C 函数内部,不能定义函数
C++也只是几种特例,才可以
1)函数内部的类型(struct,class)定义内部定义函数
2)C++11 lamda 表达式
那个判断是否是回文数的函数写在主函数外面然后调用就可以了吧,个人建议,如果a b不是太大的话,建议素数标记打表,然后判断是不是素数,如果是再调用判断是否是回文数的函数
#include <stdio.h>
#include <math.h>
#define lt long long
bool Tnop(lt NUM){
int N[10], i = 0, j, UsdNt;
for(NUM = NUM; NUM >= 1; N[i] = NUM % 10, NUM /= 10, i++)
UsdNt = 0;
for (j=0; j < i; j++)
if (N[j] != N[i - j - 1]){
return false;
break;
}
return true;
}
bool Pn(lt NUM){
bool Pn;
for(short i = 2; i <= sqrt(NUM); i++)
{
if(NUM % i == 0){
Pn = false;
break;
}
else
Pn = true;
}
return Pn;
}
bool TnopPn(lt NUM){
if(Pn(NUM) and Tnop(NUM))
return true;
else
return false;
}
int main()
{
long long Min, Max;
scanf("%d%d", &Min, &Max);
for(long long i = Min; i <= Max; i++)
{
if(TnopPn(i))
printf("%d\n", i);
}
return 0;
}
#include <stdio.h>
#include <math.h>
#define lt long long
bool Tnop(lt NUM){
int N[10], i = 0, j, UsdNt;
for(NUM = NUM; NUM >= 1; N[i] = NUM % 10, NUM /= 10, i++)
UsdNt = 0;
for (j=0; j < i; j++)
if (N[j] != N[i - j - 1]){
return false;
break;
}
return true;
}
bool Pn(lt NUM){
bool Pn;
for(short i = 2; i <= sqrt(NUM); i++)
{
if(NUM % i == 0){
Pn = false;
break;
}
else
Pn = true;
}
return Pn;
}
bool TnopPn(lt NUM){
if(Pn(NUM) and Tnop(NUM))
return true;
else
return false;
}
int main()
{
long long Min, Max;
scanf("%d%d", &Min, &Max);
for(long long i = Min; i <= Max; i++)
{
if(TnopPn(i))
printf("%d\n", i);
}
return 0;
}