• C语言经典算法实例2:数组求素数


    在这里插入图片描述

    一、问题描述

    数组求素数
    问题的描述
    如下几点所示

    1. 输出1750 到 1850 之间的素数。
    2. 计算并输出1750 到 1850 之间的素数之和 S。
    3. 并且输出最大素数。

    二、算法实例编译环境

    本文C语言经典算法实例的编译环境,使用的是集成开发环境:Visual Studio 2019
    在这里插入图片描述

    Visual Studio 2019官网链接如下

    Visual Studio 2019官网链接
    在这里插入图片描述

    Visual Studio 2019集成的开发环境的特点有

      1. Visual Studio 2019默认安装Live Share代码协作服务。
      1. 帮助用户快速编写代码的新欢迎窗口、改进搜索功能、总体性能改进。
      1. Visual Studio IntelliCode AI帮助。
      1. 更好的Python虚拟和Conda支持。
      1. 以及对包括WinForms和WPF在内的.NET Core 3.0项目支持等

    三、算法实例实现过程

    3.1、包含头文件

    包含头文件 代码如下所示

    
    #pragma once
    
    
    #include 
    #include 
    #include 
    
    
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 将要用到的C语言头文件包含进来。

    3.2、声明数组

    定义宏和声明数组 代码如下所示

     int a[101], primeNumber[100] = { 0 };
    
    • 1
    • 声明了数组a。

    3.3、声明相关变量

    声明相关变量 代码如下所示

     	int i, j, k, s;     // 定义变量
        int max;
    
    • 1
    • 2
    • 声明相关变量i, j, k, s,max;

    3.3、数组赋值

    数组赋值 代码如下所示

    	// 数组赋值
        for (i = 1750, j = 0; j <= 100; i++, j++)
        {
            a[j] = i;
        }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 可以将数组赋值。
    • 赋值为1750到1850。

    在这里插入图片描述

    3.4、 输出数组里面元素的值

    输出数组里面元素的值 代码如下所示

     	// 输入数组里面元素的值
        printf("数组里面元素的值为\n");
        for (i = 0; i <= 100; i++)
        {
            printf("%d ", a[i]);
    
            if (i % 10 == 0 && i != 0)
            {
                printf("\n");
            }
        }
        printf("\n");
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 输出 数组中存放的数据。

    按F5进行编译,调试结果如下所示。

    在这里插入图片描述

    • 可以正确的输出数组中存放的数据。

    3.5、求素数、素数和、最大的素数

    求素数、素数和、最大的素数

    	  // 求素数、素数和、最大的素数
        for (i = s = 0; i <= 100; i++)
        {
            k = sqrt(a[i]);
            for (j = 2; j <= k; j++)
            {
                if (a[i] % j == 0)
                {
                    break;
                }
            }
            if (j > k)
            {
                primeNumber[i] = a[i];
                s = s + a[i];
                max = a[i];
            }
        }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 可以求出1750 到 1850的素数。
    • 可以求出1750 到 1850的素数和。
    • 可以求出1750 到 1850的最大素数;

    3.6、输出所求的素数、素数和、最大的素数

    计输出所求的素数的和与最大的素数 代码如下所示

     	/ // 输出所求的素数、素数和、最大的素数。
        printf("\n1750 到 1850 之间的素数为\n");
        for (int i = 0; i < 100; i++)
        {
            if (primeNumber[i] != 0)
            {
                printf("%d ", primeNumber[i]);
            }
        }
    
        printf("\n\n1750 到 1850 之间的素数和为:%d\n", s);
    
        printf("\n1750 到 1850 之间的最大素数为:%d\n", max);
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 可以输出1750 到 1850的素数。
    • 可以输出1750 到 1850的素数和。
    • 可以输出1750 到 1850的最大素数;

    按F5进行编译,调试结果如下所示。

    在这里插入图片描述

    四、经典算法实例程序 完整代码

    经典算法实例程序完整代码如下所示

    4.1、main.h文件

    #pragma once
    
    
    #include 
    #include 
    #include 
    
    
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    4.2、main.c文件

    #define _CRT_SECURE_NO_WARNINGS
    
    #include "Main.h"
    
    int main()
    {
        system("color 3E");
    
        int a[101], primeNumber[100] = { 0 };
    
        int i, j, k, s;     // 定义变量
        int max;
    
        // 数组赋值
        for (i = 1750, j = 0; j <= 100; i++, j++)
        {
            a[j] = i;
        }
    
        // 输入数组里面元素的值
        printf("数组里面元素的值为\n");
        for (i = 0; i <= 100; i++)
        {
            printf("%d ", a[i]);
    
            if (i % 10 == 0 && i != 0)
            {
                printf("\n");
            }
        }
        printf("\n");
    
        // 求素数、素数和、最大的素数
        for (i = s = 0; i <= 100; i++)
        {
            k = sqrt(a[i]);
            for (j = 2; j <= k; j++)
            {
                if (a[i] % j == 0)
                {
                    break;
                }
            }
            if (j > k)
            {
                primeNumber[i] = a[i];
                s = s + a[i];
                max = a[i];
            }
        }
    
    
    
        // 输出所求的素数、素数和、最大的素数
        printf("\n1750 到 1850 之间的素数为\n");
        for (int i = 0; i < 100; i++)
        {
            if (primeNumber[i] != 0)
            {
                printf("%d ", primeNumber[i]);
            }
        }
    
        printf("\n\n1750 到 1850 之间的素数和为:%d\n", s);
    
        printf("\n1750 到 1850 之间的最大素数为:%d\n", max);
    
    
        system("pause");
        return 0;
    }
    
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66
    • 67
    • 68
    • 69
    • 70
    • 71
    • 72
    • 73

    五、总结

    本文的C语言经典算法实例:求二维数组最大最小值,要实现的目标如下

    1. 计算并输出1750 到 1850 之间的素数之和 S。
    2. 并且输出最大素数。
    3. 输出1750 到 1850 之间的素数。

    在这里插入图片描述

    文到这里就结束啦。
    希望本文的C语言经典算法实例:数组求素数,能激发你对C语言以及算法学习的热爱。

  • 相关阅读:
    如何提高网络传输效率(TCP延迟确认与Nagle算法)
    鸿蒙系统应用基础开发
    知识图谱和大语言模型的共存之道
    hive on spark问题记录
    Spring Cloud OpenFeign - - - > 超时时间配置
    ansible免密登陆脚本
    nginx配置ssl证书
    Python redis 使用教程
    北大惠普金融指数-匹配企业绿色创新指数2011-2020年:企业名称、年份、行业分类等多指标数据
    ssm基于微信小程序的医学健康管理系统
  • 原文地址:https://blog.csdn.net/m0_47419053/article/details/126678127