我想编写一个程序来查找小于特定数字的所有数字,它们等于数字和它的polindrome的总和。这是我的代码,它可以正常工作,但需要很长时间。我该怎么办?要减少它的时间吗?
#include<stdio.h>
long long int isprime(long long int b)
{
long long int i,m;
for(i=2;i*i<=b;i++)
{
if(b%i==0)
{
return 0;
}
}
return 1;
}
long long int m(long long int a){
long long int l=0;
while (a>0){
l=l*10+(a%10);
a/=10;
}
return l;
}
int main(){
long long int i = 0,cnt = 0,a= 0,num;
scanf("%lld",&a);
for (i=2;i<=a; i++){
if (isprime(i) == 1){
for (num=1;num<i; num++){
if (num == m(i-num)){
cnt ++;
break;
//printf("%d\n",i);
}
}
}
}
printf("%lld", cnt);
}