编写思想:对100到200之间的数依次进行for循环判断,看其是否为素数。判断方法:对于一个自然数,除了1以外,不是素数就是合数。若该数字是素数,则不能被除了1和它自身以外的数整除;而一个数如果是合数,则它的所有因子不会大于对其开根号所得出的数,由此可得出每个数最多时候的循环次数。

初次生成的源代码如下:

#include<stdio.h>
#include<math.h>
int main()
{int primer,variabe,sign;for(primer=101;primer<201;primer++){for(variabe=2;variabe<=sqrt(primer);variabe++){sign=0;if(primer%variabe==0)  break;else  sign=1;}if(sign==1)printf("%-5d",primer);}return 0;
}

运行结果如下:

101   103   107   109   113   127   131   137   139   149   151   157   163   167

173   179   181   191   193   197   199

由于以上程序产生了一些不必要的循环,增加了程序的时间复杂度,故而对其进行了改进。

改进1:去掉了标志变量sign,减少了内存的占用;

改进2:由于找的是100到200之间的素数,因此其间的偶数均不必进行判断,故而只剩下奇数,又由于奇数肯定无法被偶数整除,故而去掉variable中的偶数循环,降低了程序的时间复杂度。

改进后的代码如下:

#include<stdio.h>
#include<math.h>
int main()
{int primer,variabe;for(primer=101;primer<201;primer+=2){for(variabe=3;variabe<=sqrt(primer);variabe+=2){if(primer%variabe==0)  break;}if(variabe>sqrt(primer))printf("%-5d",primer);}return 0;
}

运行结果同上一致:

101   103   107   109   113   127   131   137   139   149   151   157   163   167

173   179   181   191   193   197   199

转载于:https://blog.51cto.com/lookforward2/1717920

打印100~200 之间的素数相关推荐

  1. 打印100~200 之间的素数,输出乘法口诀表,判断1000年---2000年之间的闰年

    1.打印100~200 之间的素数 #include <stdio.h> int main() { int n,i; for(i=100;i<=200;i=i++) { for(n= ...

  2. 打印100~200之间的素数。

    . 打印100~200之间的素数. #include <stdio.h> #include<stdlib.h>void main(){ int a,b; for(a=100;a ...

  3. 【C语言练习】将100~200之间的素数输出

    将100~200之间的素数输出 一.编程思路 1.首先,我们要意识到,找出某个区间内符合条件的数,就需要对这个区间内的所有数进行遍历,而最常用的遍历方法就是利用for循环: 2.其次,在确定了遍历区间 ...

  4. 求出100~200之间的素数

    求出100~200之间的素数的个数,并求出所有的素数. 分析:素数定义是只能被1和该数本身整除 package com.math.forth;/*** 求出100~200之间的素数的个数,并求出所有的 ...

  5. 输出100 - 200之间的素数C语言

    输出100 - 200之间的素数 素数就是质数,即除了1和它本身不再有求它因数的自然数 那么这道题的思路就是用100到200之间的数去除以比这个数小的所有数(除了1和它本身),如果有余数说明它不是一个 ...

  6. 求解100~200之间的素数

    求解100~200之间的素数目录 文章目录 求解100~200之间素数目录 前言 一.素数是什么? 二.求解素数的方法 1.常规方法 2.优化方法 3.另辟蹊径 总结 前言 对于很多人对求解素数存在一 ...

  7. 打印1~200之间的素数(质数)c语言

    素数:除了1和它自身以外没有其他因数的数 运用for循环的嵌套 循环1打印出2~200之间的所有数 循环2找到里面的素数

  8. 100~200之间的素数(及其四个优化方案)

    要求素数,首先我们要知道什么是素数,在解题的时候,不要急着去寻找方法解题,而是要先了解它的根本,才可以在遇到类似题的时候轻松面对解决 质数(prime number)又称素数,有无限个.一个大于1的自 ...

  9. 用流程图、NS图、伪代码分别描述解决如下实际问题的算法。将100~200之间的素数输出。

    正解: 伪代码: n=100 while n≤200 do i=2 while i≤√n if mod(n,i)=0 then i=n else i=i+1 end if end do if i &l ...

最新文章

  1. ugui 转轮_Unity3D研究院之Android NDK编译C/C++结合Unity实现本地数据共享(二十八)...
  2. jquery 加法 乘法运算 精确计算函数
  3. 云南计算机一级没有开考吗,2020年3月云南计算机一级考试时间
  4. 滤波器开发之三:基于算数平均的阶进平滑滤波器
  5. stream流倒序排序_java8 stream多字段排序
  6. threejs 判断对象是否在可视区内
  7. hello !CNBLOG
  8. CCF201604-2 俄罗斯方块
  9. 【Java并发编程一】线程安全问题
  10. python能做什么程序-Python能做什么工作?
  11. 【Win10应用开发】自定义磁贴通知的排版
  12. 知识就是力量!(内含赠书福利)
  13. centos7.4 update git
  14. windows开启Apache的mod_rewrite模块
  15. 如何在H264数据中获取PTS?
  16. 今天第一次做PIZZA,很成功.
  17. gopher攻击mysql_CTFweb类型(二十七)gopher对mysql的利用及例题讲解
  18. linux 软链接 相对路径,Linux入门之ln命令创建软链接的绝对路径和相对路径详解(Ubuntu)...
  19. 《联众》并购案细节公布,海虹海外公司浮出水面(ZT)
  20. python Excel表序号(leetcode)

热门文章

  1. python随机生成中文字符串_利用python3随机生成中文字符的实现方法
  2. 射影几何3:拓广平面
  3. java类函数默认的保护级别_事件说明
  4. html引入iview如何修改样式,vue中如何修改iView的样式,
  5. 如何获取握手包_白话详解TCP的三次握手到底做了些什么
  6. vue/cli 3.0 与 2.0脚手架怎样mock数据
  7. 6行Python实现验证码识别,太稳了!
  8. linux 统计根目录下的文件日期和出现的频率
  9. oracle9i解密rewrap,ORACLE9I+DATAGUARD+RMAN
  10. 第六天2017/04/11(2:Linux内核链表Demo、顺序表、链表的开发与设计)