c++输入一个整数判断是否为完全平方数_C语言中如何判断一个数是完全平方数...

展开全部

对于一个比较大的整数,比如:23916,一共有5位数字,假设它是完全平方数,那么它的平方根应该是一62616964757a686964616fe4b893e5b19e31333431353939个3位数,因为100的平方是最小的5位数。

同时,这个平方根应该小于200,因为200的平方是40000比原数大。取个中间数150,因为已知15的平方是225,所以很容易算出150的平方是22500,比原数小。

同理,算出160的平方是25600,比原数大。所以,如果24346时一个完全平方数,它的平方根应该大于150且小于160。完全平方数,凡是个位为6的,其平方根个位必为4或6。

计算154的完全平方,等于 23716 比 23916 小200,计算156的完全平方,等于 24336 比 23916 大420,所以23916不是完全平方数。

扩展资料

应用:

有多少个正整数n,使n!+2019是完全平方数,注:n!=1*2*…*n,即n的阶乘。

讲解思路:这道题属于完全平方数问题,要判断一个数是完全平方数,除了严格验证外,目前还没有完善的方法。但要判断一个数不是完全平方数,有很多种性质可以用,

这里采用除以4的余数来判别。由于n!具有十分特别的性质,因此总的解题思路是:先判断当n>=4时的情况,然后对n<4时的3个数逐一验证。

步骤1:

先思考第一个问题,

当n大于等于4时,

n!+2019除以4的余数是多少。

此时n!=1*2*3*4…*n,

故n!是4的整数倍,

而2019除以4的余数是3,

因此n!+2019除以4的余数是3。

步骤2:

再思考第二个问题,

当n大于等于4时,

n!+2019可能是完全平方数吗。

此时n!+2019是奇数,

如果它是完全平方数,

则存在某自然数k,

使n!+2019=(2k+1)^2

=4k^2+4k+1,

显然该数除以4的余数为1,

这与步骤1的结论想矛盾,

因此不是完全平方数。

注:k^2表示k的平方。

步骤3:

再思考第三个问题,

考虑原题目的答案。

从步骤2直到n小于4,

下面对n=1,2,3分别讨论:

当n=1时,

n!+2019=2020不是完全平方数;

当n=2时,

n!+2019=2021不是完全平方数;

当n=3时,

n!+2019=2025=45^2,

是完全平方数。

所以原题的答案只有n=3。

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值