密码工程-小素数

news/2025/3/15 1:16:37/文章来源:https://www.cnblogs.com/GJH6/p/18235110

任务详情

  1. 在openEuler(推荐)或Ubuntu或Windows(不推荐)中完成下面任务,使用git管理过程,至少提交三次

  2. 参考《密码工程》p107伪代码基于Eratosthenes算法实现 int SmallPrimeList(int n, int *plist, int *len), 其中plist返回素数列表,len返回列表长度(5’)

  3. 写出测试代码,至少包括 n=2, n=你的四位学号,n>2^20次方的测试代码,提交代码和运行结果截图,git log截图(10)

  4. 提交使用Markdown并转为PDF,或者使用doc,docx格式

任务内容

1、测试代码

点击查看代码
#include <stdio.h>  
#include <stdlib.h>  
#include <string.h>  // 标记函数,用于标记合数  
void markComposites(int *isPrime, int n) {  for (int p = 2; p * p <= n; ++p) {  if (isPrime[p]) {  for (int i = p * p; i <= n; i += p) {  isPrime[i] = 0; // 标记为合数  }  }  }  
}  // 生成小于等于n的所有素数列表  
int SmallPrimeList(int n, int *plist, int *len) {  // 如果n小于2,没有素数  if (n < 2) {  *len = 0;  return 0;  }  // 分配内存来标记是否为素数  int *isPrime = (int *)calloc(n + 1, sizeof(int));  if (isPrime == NULL) {  return -1; // 分配内存失败  }  // 初始化所有数字为素数(除了0和1)  for (int i = 2; i <= n; ++i) {  isPrime[i] = 1;  }  // 标记合数  markComposites(isPrime, n);  // 填充plist并计算素数数量  int count = 0;  for (int i = 2; i <= n; ++i) {  if (isPrime[i]) {  plist[count++] = i;  }  }  // 释放内存  free(isPrime);  // 设置返回的长度  *len = count;  return 0; // 成功  
}  int main() {  int n;  printf("Enter a positive integer n (not greater than 2^20): ");  scanf("%d", &n); // 从用户处获取输入  // 检查输入是否为正整数且不超过2的20次方  const int MAX_N = 1 << 20; // 2的20次方  if (n <= 0 || n > MAX_N) {  printf("n must be a positive integer less than or equal to 2^20.\n");  return 1; // 输入错误,退出程序  }  // 根据n的大小动态分配plist的内存  int *plist = (int *)malloc(MAX_N * sizeof(int)); // 分配足够的空间来容纳最多MAX_N个素数  if (plist == NULL) {  printf("Memory allocation failed.\n");  return 1; // 内存分配失败,退出程序  }  int len = 0;  // 生成素数列表  int result = SmallPrimeList(n, plist, &len);  if (result == 0) {  printf("Prime numbers less than or equal to %d are:\n", n);  for (int i = 0; i < len; ++i) {  printf("%d ", plist[i]);  }  printf("\n");  } else {  printf("Error occurred during prime number generation.\n");  }  // 释放plist内存  free(plist);  return 0;  
}
2、测试结果

image

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/720968.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

文献收获_2024.06.06

Ahmed, Syed Rakin. 2024. Generating Clinically Translatable AI Models for Cancer Diagnostics. Doctoral dissertation, Harvard University Graduate School of Arts and Sciences. 来源:https://nrs.harvard.edu/URN-3:HUL.INSTREPOS:37378697FIGURE 4 Model Zoo这部分…

高德面试:为什么Map不能插入null?

在 Java 中,Map 是属于 java.util 包下的一个接口(interface),所以说“为什么 Map 不能插入 null?”这个问题本身问的不严谨。Map 部分类关系图如下:所以,这里面试官其实想问的是:为什么 ConcurrentHashMap 不能插入 null? 1.HashMap和ConcurrentHashMap的区别 HashMa…

修改k8s pod的hosts文件

当我们服务需要使用自定义的域名解析时,就需要修改pod内hosts文件。 而如果我们在pod内部修改后,下次重启依然会丢,所有下面用两种方式实现持久化修改:1.当集群内所有或者大部分服务都需要修改hosts文件时,我们可以修改CoreDNS的configmap文件kubectl edit cm -n kube-sys…

BOSHIDA AC/DC电源模块:跟踪技术的创新之选

BOSHIDA AC/DC电源模块:跟踪技术的创新之选 AC/DC电源模块是一种能将交流电转化为直流电的设备,广泛应用于各种电子设备中。在过去的几十年中,AC/DC电源模块一直在不断发展和演进,以满足不断进步的科技需求。其中一项创新技术,即跟踪技术,成为AC/DC电源模块设计的首选。 …

Junit4遇上chatGPT

这是一篇适合Java工程师体质的AI开发教程。 本教程会教你写一个简单的junit4的Rule,该Rule在基于junit4的测试方法失败后,自动向GPT发送错误信息并通过GPT分析得出代码修改建议。 首先向AI问好 简单的通过AI,让它基于json格式生成相应的类文件,这样方便我们在代码中使用,而…

『vulnhub系列』HACKABLE-II

『vulnhub系列』HACKABLE-II 下载地址: https://www.vulnhub.com/entry/hackable-ii,711/信息搜集: 使用nmap探测存活主机,发现主机开启了21,22和80端口访问80端口的web服务,发现apache默认页面使用dirsearch进行目录爆破,发现files 目录 dirsearch -u "http://192.1…

电脑局域网内让其他电脑通过IP访问配置

依次点击桌面左下角“开始菜单”>“所有应用”>“Windows系统”>“控制面板”,如图所示 在控制面板界面,选择“查看方式”为“大图标”,然后点击打开window防火墙,如图所示 然后点击“高级设置”,如图所示在高级安全 Windows 防火墙界面,右侧点击Windows 防火墙…

.eslintrc-auto-import.json 自动导入 依赖 入ref reactive 等

.eslintrc-auto-import.json 自动导入 依赖 入ref reactive 等这篇文章比较详细介绍了这个,但是这种全局导入,其实也是酌情处理。 Reference: vite自动按需导入 https://blog.csdn.net/webbirds/article/details/127283504--------------------------------------------- 生…

13.56MHz电动车NFC刷卡解锁方案-SI522 SI512

随着电动车市场的快速发展,车主对车辆的智能化和便捷性的要求也在不断提升。仪表盘作为电动车的重要组成部分,不仅需要提供基本的行驶信息,还需要具备智能交互功能。基于13.56MHz频率的NFC(近场通信)技术为电动车仪表盘的智能化提供了有效解决方案。本文将介绍一种基于13.…

MBR10100FCT-ASEMI肖特基二极管MBR10100FCT

MBR10100FCT-ASEMI肖特基二极管MBR10100FCT编辑:ll MBR10100FCT-ASEMI肖特基二极管MBR10100FCT 型号:MBR10100FCT 品牌:ASEMI 封装:TO-220F 最大平均正向电流(IF):10A 最大循环峰值反向电压(VRRM):100V 最大正向电压(VF):0.80V 工作温度:-65C~175C 反向恢复时间:…

数字先锋 | “药”上云!天翼云助力国药数科加速建设“国药云”

5月25日,第七届数字中国建设峰会期间,“国云注智 聚力向新”——2024智算云生态大会智算云论坛在福州举办。会上,国药数科总经理助理、技术总监罗皓在演讲中介绍,国药数科携手天翼云,系统化构建“1+4+X国药云架构”,为各子公司提供统一标准的云底座、云联网、云运维、云灾…

企业级数据保护:华企盾DSC敏感内容识别与加密技术

在当今数字化时代,企业面临的数据安全挑战日益严峻。敏感数据的泄露不仅会导致经济损失,还可能损害企业的声誉和客户信任。因此,采用先进的敏感内容识别和加密技术,例如华企盾DSC敏感内容识别,对企业数据进行有效保护至关重要。一、敏感内容识别的重要性 企业内部的敏感数…