当前位置: 首页 > news >正文

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

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

  • 一、问题描述
  • 二、算法实例编译环境
  • 三、算法实例实现过程
    • 3.1、包含头文件
    • 3.2、声明数组
    • 3.3、声明相关变量
    • 3.3、数组赋值
    • 3.4、 输出数组里面元素的值
    • 3.5、求素数、素数和、最大的素数
    • 3.6、输出所求的素数、素数和、最大的素数
  • 四、经典算法实例程序 完整代码
    • 4.1、main.h文件
    • 4.2、main.c文件
  • 五、总结

在这里插入图片描述

一、问题描述

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

  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 <stdio.h>
#include <stdlib.h>
#include <math.h>



  • 将要用到的C语言头文件包含进来。

3.2、声明数组

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

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

3.3、声明相关变量

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

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

3.3、数组赋值

数组赋值 代码如下所示

	// 数组赋值
    for (i = 1750, j = 0; j <= 100; i++, j++)
    {
        a[j] = i;
    }
  • 可以将数组赋值。
  • 赋值为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");
  • 输出 数组中存放的数据。

按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];
        }
    }
  • 可以求出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);
  • 可以输出1750 到 1850的素数。
  • 可以输出1750 到 1850的素数和。
  • 可以输出1750 到 1850的最大素数;

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

在这里插入图片描述

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

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

4.1、main.h文件

#pragma once


#include <stdio.h>
#include <stdlib.h>
#include <math.h>



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;
}


五、总结

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

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

在这里插入图片描述

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

相关文章:

  • 什么是Java?
  • Vue插值表达式及常用指令
  • 【重学Reids 缓存】之Reids 缓存之RDB 持久化
  • 30分钟吃掉pytorch中的各种归一化层
  • Three.js 这样写就有阴影效果啦
  • Cravatar头像
  • Python-爬虫 (BS4数据解析)
  • java基于ssm+vue+elementui的多用户博客管理系统
  • java毕业设计网站swing mysql实现的仓库商品管理系统[包运行成功]
  • java毕业设计论文题目基于SSM实现的小区物业管理系统[包运行成功]
  • “蔚来杯“2022牛客暑期多校训练营10 EF题解
  • 人工智能科学计算库—Numpy教程
  • i.MX6ULL应用移植 | 基于ubuntu base 16.04搭建python3.9+pip3环境
  • vim文本编辑器
  • 网课搜题接口
  • Angular 响应式表单之下拉框
  • HTTP中的ETag在移动客户端的应用
  • Java深入 - 深入理解Java集合
  • Python学习之路13-记分
  • thinkphp5.1 easywechat4 微信第三方开放平台
  • Yii源码解读-服务定位器(Service Locator)
  • 订阅Forge Viewer所有的事件
  • 短视频宝贝=慢?阿里巴巴工程师这样秒开短视频
  • 构建二叉树进行数值数组的去重及优化
  • 前端存储 - localStorage
  • 前端技术周刊 2019-01-14:客户端存储
  • 如何使用 JavaScript 解析 URL
  • 协程
  • Java数据解析之JSON
  • mysql 慢查询分析工具:pt-query-digest 在mac 上的安装使用 ...
  • 没有任何编程基础可以直接学习python语言吗?学会后能够做什么? ...
  • ​ 无限可能性的探索:Amazon Lightsail轻量应用服务器引领数字化时代创新发展
  • ​云纳万物 · 数皆有言|2021 七牛云战略发布会启幕,邀您赴约
  • #[Composer学习笔记]Part1:安装composer并通过composer创建一个项目
  • #我与Java虚拟机的故事#连载01:人在JVM,身不由己
  • (LeetCode C++)盛最多水的容器
  • (python)数据结构---字典
  • (rabbitmq的高级特性)消息可靠性
  • (附源码)springboot人体健康检测微信小程序 毕业设计 012142
  • (机器学习-深度学习快速入门)第三章机器学习-第二节:机器学习模型之线性回归
  • (七)Knockout 创建自定义绑定
  • (四)Tiki-taka算法(TTA)求解无人机三维路径规划研究(MATLAB)
  • (算法)Game
  • .NET Core WebAPI中使用swagger版本控制,添加注释
  • .Net 访问电子邮箱-LumiSoft.Net,好用
  • .NET中的Event与Delegates,从Publisher到Subscriber的衔接!
  • .NET中的十进制浮点类型,徐汇区网站设计
  • [1159]adb判断手机屏幕状态并点亮屏幕
  • [20190416]完善shared latch测试脚本2.txt
  • [BJDCTF 2020]easy_md5
  • [boost]使用boost::function和boost::bind产生的down机一例
  • [codeforces]Recover the String
  • [Dxperience.8.*]报表预览控件PrintControl设置
  • [Hive] INSERT OVERWRITE DIRECTORY要注意的问题
  • [IE9] IE9 Beta崩溃问题解决方案