这样的题首先当然还是要有判断质数和回文数的函数:
回文数:
int tzyx(int x){
int y,op=0;
y=x;//将x的值赋给y,因为后面的反转数要与原值x做对比,过程以y来做运算
while(y!=0){
op=op*10+y%10;//将op乘以10,取出y的最后一位,op等于y
y=y/10;//y除以10
}
if(op==x){
return 0;
}else{
return 1;
}
}
回文数的思路是这样的:取出x的每一位数,翻转成一个新数,如果反转后的数与原数相等,则此数是回文数。
如果x为1234
第一次循环:
op=010+1234%10 (op=1)
y=1234/10 (y=123)
第二次循环:
op=410+123%10 (op=43)
y=123/10 (y=12)
第三次循环:
op=4310+12%10 (op=432)
y=12/10 (y=1)
第四次循环:
op=43210+1%10 (op=4321)
y=1/10 (y=0)
当y等于零时,停止循环,将反转后的op与x对比,若相等,返回0,不相等则返回1(当然上面的样例是不等的( ̄▽ ̄)")
质数
int obd(int x){
int i,z=0;
if(x==