方法,讲解,及注释都在代码中,方法3和4一个思想两种写法,如果帮到你可以给我点个赞吗

#define _CRT_SECURE_NO_WARNINGS
#pragma once//防止头文件重复包含
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<math.h>
int main() {//IsPrime_2(12);for (int i = 2; i <= 1000; i++) {int a=IsPrime_3(i);int b=IsPrime_4(i);if (a != b) {//printf("%d\n", i);IsPrime(i);}}return 0;
}
//定义:质数是指在大于1的自然数中,除了1和它本身以外不再有其他因数的自然数
int IsPrime(int n) {if (n <= 1) {printf("请输入大于1的自然数");return 0;}for (int i = 2; i < n; i++){if (n % i == 0)    {printf("%d\n", i);printf("%d不是质数\n", n);return 0;}}printf("%d是质数\n", n);return 1;
}
//如果数c不是素数,则还有其他因子,其中的因子,假如为a,b.其中必有一个大于sqrt(c) ,一个小于sqrt(c),或者两个因子相等刚好等于sqrt(c),这是数学问题
int IsPrime_2(int n)
{if (n <= 1) {printf("请输入大于1的自然数");return 0;}if (n != 2 && n % 2 == 0) {printf("%d不是质数\n", n);//质数除了2以外,一定不可能被2整除return 0;}int temp = sqrt(n);for (int i = 2; i <=temp; i++){if (n % i == 0)    {printf("%d不是质数\n", n);return 0;}}printf("%d是质数\n", n);return 1;
}
int IsPrime_3(int n)
{if (n == 1 || n == 4)return 0;if (n == 2 || n == 3)return 1;if (n % 6 != 1 && n % 6 != 5)//除了2,3以外的质数一定在6的倍数的两边,这也是数学问题return 0;int temp = sqrt(n);for (int i = 5; i <= temp; i += 6) {if (n % i == 0 || n % (i + 2) == 0)return 0;}return 1;
}
int IsPrime_4(int n)
{if (n == 1 || n == 4)return 0;if (n == 2 || n == 3)return 1;if (n % 6 != 1 && n % 6 != 5)//除了2,3以外的质数一定在6的倍数的两边,这也是数学问题return 0;int temp = (int)sqrt(n)+1;//+1是为了防止漏掉两个因素相等时的情况,可以把+1去掉看看会发生什么for (int i = 6; i <= temp; i += 6) {if (n % (i - 1) == 0 || n % (i + 1) == 0)return 0;}return 1;
}

判断质数的所有方法详解(C语言)相关推荐

  1. jquery复选框组清空选中的值_jQuery获取复选框被选中数量及判断选择值的方法详解...

    这篇文章主要介绍了jQuery获取复选框被选中数量及判断选择值的方法,结合实例形式分析了jQuery操作复选框进行判定与统计的相关技巧,非常具有实用价值,需要的朋友可以参考下 本文实例讲述了jQuer ...

  2. C语言metropolis方法,详解R语言MCMC:Metropolis-Hastings采样用于回归的贝叶斯估计

    MCMC是从复杂概率模型中采样的通用技术. 蒙特卡洛 马尔可夫链 Metropolis-Hastings算法 问题 如果需要计算有复杂后验pdf p(θ| y)的随机变量θ的函数f(θ)的平均值或期望 ...

  3. python判断输入数字大于0,对python 判断数字是否小于0的方法详解

    对python 判断数字是否小于0的方法详解 为了精度更准确 可以使用数字的绝对值 < 1.0e-16  或者 < 1.0e-8来对比 abs(Num) 以上这篇对python 判断数字是 ...

  4. ES5和ES6数组遍历方法详解

    ES5和ES6数组遍历方法详解 在ES5中常用的10种数组遍历方法: 1.原始的for循环语句 2.Array.prototype.forEach数组对象内置方法 3.Array.prototype. ...

  5. 序列内置方法详解(string/list/tuple)

    一.常用方法集合 1.1.string,字符串常用方法 以下举例是python2.7测试: 函数名称 作用 举例 str.capitalize() 字符串第一个字符如果是字母,则把字母替换为大写字母. ...

  6. java多线程中的join方法详解

    java多线程中的join方法详解 方法Join是干啥用的? 简单回答,同步,如何同步? 怎么实现的? 下面将逐个回答. 自从接触Java多线程,一直对Join理解不了.JDK是这样说的:join p ...

  7. android中怎么网络判断,Android中判断网络是否连接实例详解

    Android中判断网络是否连接实例详解 在android中,如何监测网络的状态呢,这个有的时候也是十分重要的,方法如下: public class ConnectionDetector { priv ...

  8. python2和python3分别是python的两个版本_Windows下Python2与Python3两个版本共存的方法详解...

    前言 一向用Python 3,最近研究微信公众号开发,各云平台只支持Python 2.7,想用其他版本需要自己搭建环境.而网上又搜不到Python 3开发微信公众号的资料.暂打算先使用Python 2 ...

  9. python语言的格式框架_django框架模板语言使用方法详解

    本文实例讲述了django框架模板语言使用方法.分享给大家供大家参考,具体如下: 模板功能 作用:生成html界面内容,模版致力于界面如何显示,而不是程序逻辑.模板不仅仅是一个html文件,还包括了页 ...

  10. object类中的equals与自定义equals方法详解

    object类中的equals与自定义equal方法详解 1.this怎么理解?this == obj表示什么? this就是当前你new出来的对象,这里指谁调用equal方法this指的就是谁,ob ...

最新文章

  1. 2017 ACM/ICPC 南宁赛区小结 By JSB @ Reconquista
  2. SpringBoot--Druid多数据源配置
  3. Mybatis原理分析之一:从JDBC到Mybatis
  4. 牛客国庆集训派对Day2 F、平衡二叉树 【构造+记忆化搜索】
  5. sql删除语句_Part 3 | SQL学习:删除行
  6. Python 中类的继承:属性初始化、类型判断、多态、多继承和对象信息的获取
  7. 零基础开始学 Web 前端开发,有什么建议?(视频教程)
  8. Linux安装tomcat并使用+热部署
  9. pytorch---之item()
  10. MySQL中锁的必要性_MySQL中的锁之一:锁的必要性及分类
  11. UVA12265-Selling Land(细节处理)
  12. RabbitMQ中Confirm确认与Return返回消息详解(八)
  13. 同步计数器 CountDownLatch
  14. ghost 开发主题
  15. 《统计学》第八版贾俊平第十三章时间序列分析和预测知识点总结及课后习题答案
  16. android极光推送设置消息类型,详解极光推送的 4 种消息形式—— Android 篇
  17. Facebook正式改名 要砸600亿做这件事 改名转运能拯救这张“脸”吗?
  18. PAT L3-001 凑零钱(01背包(布尔背包)+记录路径)
  19. python 马赛克还原_马赛克消除还原工具Depix测试
  20. 派克宇航获得AVIC涡轮螺旋桨支线飞机MA700的飞控作动系统合同

热门文章

  1. 服务器搬迁方案_服务器数据迁移方案
  2. 计算广告中的名词解释
  3. Scrum敏捷开发框架
  4. jquery+cropper剪切、旋转、缩放图片
  5. 【计算机组成原理】实验2:十六位数据总线实验
  6. malloc函数及用法
  7. VC打印机使用 win95环境的下例子测试
  8. dex2jar源码解析----smail转dex
  9. 用java实现九九乘法表的打印
  10. [渝粤教育] 山东工商学院 电机与拖动基础 参考 资料