又到了每日水博客的时间,今天本来打算写一道(我觉得)巨难的题的,可是我太笨了,今天还没学会,只有等我明天继续学会了再写了。好了,言归正传,我们来看看怎么求回文数吧,这可能只是一个小知识点,但我在考试时没有把它吃透,就觉得它巨难,我们来看看吧。
回文数:就是一个对称的数,例如123的回文数即为12321,520的回文数即为52025,先用数学来解释一下12321=123*10^2+2*10^1+1*10^0,52025=520*10^2+2*10^1+5*10^0,这样看了是否有点想法了呢,这也是我做题的第一想法,不过需要套一个循环,循环每次乘一次10,我们来个例题+代码理解一下吧,代码才能直观的展现我的意思。
例题:输入一个数n,判断n的回文数是否为素数,如果是则输出isprime,如果不是则输出noprime
#include <stdio.h>
#include <math.h>
int main()
{
long long n;
scanf("%lld",&n);
long long m=n/10;//因为最后那个数是不用参与计算的,我们把它去掉
long long a=n;
while(m!=0){
a=a*10+m%10;//每次循环都让a乘以10再加上下一个要乘的数
m=m/10;
} //最后a即为n的回文数
//下面在判断a是否为素数,如果你只想得到n的回文数,直接输出a即可
// long long count=0;
// double b=a;
// for(int i=2;i<sqrt(b);i++){
// if(a%i==0){
// count++;
// }
// }
// if(count==0){
// printf("isprime");
// }else{
// printf("noprime");
// }
return 0;
}
今天就是一个很简单的知识点了,希望看到的人都能及时掌握,并在未来成为超级代佬!!
最后,如有问题,欢迎指正哈~