华师一附中OI组

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1196|回复: 0
打印 上一主题 下一主题

试除法判断质数

[复制链接]

738

主题

1485

帖子

5420

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
5420
跳转到指定楼层
楼主
发表于 2019-1-7 09:19:32 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
判断质数一个很直观的方法就是看这个数字除了1和它本身之外还有没有其他的约数,那么我们可以拿2-sqrt(x)之间的数去除这个数,若有一个能被它整除,则说明不是质数,可以终止循环,否则继续判断到最后一个数字,若一个都没有找到,则说明x是质数。
这个程序段应该有两个出口,一个是找到了会提前结束,一个是到了sqrt(x)都没有找到,自动结束
代码段如下:
  1. #include<iostream>
  2. #include<cmath>
  3. using namespace std;
  4. int  x,i;
  5. bool b;
  6. int  main()
  7. {
  8.     cin>>x;
  9.     i=2;
  10.     b=1;
  11.     while (i<=sqrt(x) && b)
  12.         if (x%i==0) b=0;
  13.         else i++;
  14.     cout<<b;
  15.     return 0;
  16. }
复制代码
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|服务支持:DZ动力|华师一附中OI组  

GMT+8, 2024-11-3 02:32 , Processed in 0.095423 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表