zoukankan      html  css  js  c++  java
  • C语言编程输出100到200的素数的两种方法,和三步优化(逐步优化)

    了解素数(只能被自己和1整除的数)概念后,写代码会容易很多

    <1>
    这个版本的程序没有经过优化,是根据最基本的概念写出的代码

    #include<stdio.h>
    #include<stdlib.h>
    int main()
    {
        int i, m;
        for (i = 100; i <= 200; i++)
        {
            for (m = 2; m <= i; m++)
            {
                if (i == m)//输出条件
                    printf("%4d", i);
                if (i%m == 0)//若是被除自己外的数整除则跳出
                    break;
            }
        }
        system("pause");
        return 0;
    }

    <2>
    做了基础优化的代码

    #include<stdio.h>
    #include<stdlib.h>
    #include<math.h>
    int main()
    {
        int i, m;
        for (i = 100; i <= 200; i++)
        {
            for (m = 2; m <= sqrt(i); m++)
            {
    
                if (i%m == 0)
                    break;
            }
            if (m >sqrt(i))//使用开平方函数,优化运行次数
                printf("%4d", i);
        }
        system("pause");
        return 0;
    }

    <3>
    另一种方法,并没有优化

    #include<stdio.h>
    #include<stdlib.h>
    #include<math.h>
    int main()
    {
        int i, m,sum;//定义计数器
        for (i = 100; i <= 200; i++)
        {
            sum = 0;//每次循环清零
            for (m = 2; m <= sqrt(i); m++)
            {
    
                if (i%m == 0)
                    sum++;//不满足条件累加器加一
            }
            if (sum==0)
                printf("%4d", i);
        }
        system("pause");
        return 0;
    }

    <4>
    经过最终优化的程序,在使用开平方函数的前提下,去掉循环中的偶数再次减少运行次数,增加运行效率

    #include<stdio.h>
    #include<stdlib.h>
    #include<math.h>
    int main()
    {
        int i, m;
        for (i = 101; i <= 200; i+=2)
        {
            for (m = 2; m <= sqrt(i); m++)
            {
    
                if (i%m == 0)
                    break;
            }
            if (m >sqrt(i))//使用开平方函数,优化运行次数
                printf("%4d", i);
        }
        system("pause");
        return 0;
    }
  • 相关阅读:
    课堂作业
    Visual Studio Code for mac 设置中文
    git分支与主干合并操作
    git常用命令
    js事件冒泡和事件委托
    JS中的三种弹出式消息提醒(警告窗口、确认窗口、信息输入窗口)的命令是什么?
    常见的解决浏览器兼容性问题的方式有哪些
    vue问题大全
    浅析前端工程化
    前端中常见的数据结构小结
  • 原文地址:https://www.cnblogs.com/Kaniso-Vok/p/13756275.html
Copyright © 2011-2022 走看看