王道机试指南NO.10素数判定

时间限制:1s 内存限制:32MB

题目描述

给定一个数n,要求判断其是否为素数(0,1,负数都是非素数)。

输入

测试数据有多组,每组输入一个数n。

输出

对于每组输入,若是素数就输出yes,否则输出no。

样例输入

13

样例输出

yes

题目分析

1、若n存在相异于1与其本身的因数且该因数大于sqrt(n),则必存在小于或等于sqrt(n)的因数,所以我们只需测试到sqrt(n)为止。
2、将sqrt(n)+1的值赋给变量bound,然后令i与bound作比较,这样保证了sqrt运算只进行一次。sqrt是周所周知的几个比较耗时的函数之一,该策略同样适用于strlen函数。
3、puts函数是在头文件stdio.h中,输出时最后直接带换行。改用cout,刚开始忘加括号,中间的三目运算符因为运算符优先级输出的是true为1,false为0,而不是输出“yes”和“no”。
<< 优先级比 ?: 高,先执行cout << judge(x),而后在执行三目运算符,此时的执行结果并不会输出。

cout << judge(x) ? "yes" : "no
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值