笨方法写C语言程序:回文素数

问题:已知一个范围,如何输出该范围内所有的回文素数?
要解决这个问题先要明白两个知识。
一.什么是回文数
回文数就是一个数字,正着读和反着读一模一样,例如,121,34543,11等等(注意,个位数字也是回文数)
明白了什么是回文数,现在要考虑如何判断一个数字是回文数。
我的想法:
1.既然正读反读一样是它的定义,那么,假设输入的数字是number,我利用取余和取整循环着从后向前取出它的每一位,将其按位存入数组,这样就实现了反读。
2.接下来把这些数组里的数字循环着乘上10再加上下一位就可以得出反读后的数sum。
3.判断反读出来的数sum与原数number是否相等。一样的话即为回文数,否则不是。

(我个人觉得回文数更特殊,要少于素数,但是我没有证据。所以我在程序中先判断是不是回文数,在回文数的基础上再判断是不是素数。我认为这样可以提高效率。)

二.什么是素数
素数是指,除了1和自己之外没有任何因数的数。(0和1除外)
现在考虑如何判断一个数是素数。
我的方法极其简单粗暴,就是:已知的一个数number,那么从2开始到number为止,枚举所有的比它小的数看看可不可以整除number。如果可以,说明是number的因数,number即为合数;如果全都不可以,说明number是素数。
(由于我对循环的逻辑不甚了解所以我采用了计数的方法进行素数判断,详情看代码吧)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值