寻找大于2^N的最小质数

[运营] ext4分区遇到“Structure needs cleaning”问题,怎么解决 - 结构需要清理 摘要:当ext4文件系统出现"Structure needs cleaning"错误时,表明存在元数据损坏。解决方法包括:1)检查系统日志确认错误;2)卸载受影响分区;3)使用fsck.ext4分步骤修复(先测试模式-n,再保守修复-p,严重损坏时用-y强制修复);4)检查修复结果;5)重新挂载。若数据丢失可尝试从lost+found恢复。建议定期备份、避免异常关机并定期检查文件系统,以防硬件故障导致类似问题。修复前务必备份重要数据。 阅读详情

最近需要个序列,要求接近2的幂,但又不能有公因子。为免除后患,决定取大于2^N的最小质数。

希望至少找到2^33次方,选用了筛法。由于需要8G以上内存,程序编译模式得选x64:

(BTW:编写时发现VC++的new操作不能分配超过0x7FFFFFFF的内存,而malloc可以抓狂)

// prime_sieve_cpp.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"
#include <vector>
#include <iostream>
#include <iomanip>
using namespace std;

int _tmain(int argc, _TCHAR* argv[])
{
  __int64 const K = 1024;
  __int64 const M = 1024 * K;
  __int64 const G = 1024 * M;
  __int64 const T = 1024 * G;

  __int64 const N = 9 * G + 100000;
  char * a = (char*)malloc(N);
  for(__int64 i = 0; i < N; ++i){
    a[i] = 1;
  }
  a[0] = 0;
  a[1] = 0;

  for(__int64 i = 2; i < N; ++i){
    if(a[i]){
      for(__int64 j = i + i; j < N; j += i){
        if(a[j]){
          a[j] = 0;
        }
      }
    }
    //if((i % MB) == 0){
    //  cout << (i / MB) << "mb" << endl;
    //}
  }

  __int64 n = 2, pw = 1;
  while(n < N){
    cout << "least prime over 2^" << setw(2) << pw << "(" << setw(14) << n << "): ";
    for(__int64 i = n; i < N; ++i){
      if(a[i] == 1){
        cout << i;
        break;
      }
    }
    cout << endl;

    n *= 2;
    ++pw;
  }

  free(a);
	return 0;
}


结果:

least prime over 2^ 1( 2): 2
least prime over 2^ 2( 4): 5
least prime over 2^ 3( 8): 11
least prime over 2^ 4( 16): 17
least prime over 2^ 5( 32): 37
least prime over 2^ 6( 64): 67
least prime over 2^ 7( 128): 131
least prime over 2^ 8( 256): 257
least prime over 2^ 9( 512): 521
least prime over 2^10( 1024): 1031
least prime over 2^11( 2048): 2053
least prime over 2^12( 4096): 4099
least prime over 2^13( 8192): 8209
least prime over 2^14( 16384): 16411
least prime over 2^15( 32768): 32771
least prime over 2^16( 65536): 65537
least prime over 2^17( 131072): 131101
least prime over 2^18( 262144): 262147
least prime over 2^19( 524288): 524309
least prime over 2^20( 1048576): 1048583
least prime over 2^21( 2097152): 2097169
least prime over 2^22( 4194304): 4194319
least prime over 2^23( 8388608): 8388617
least prime over 2^24( 16777216): 16777259
least prime over 2^25( 33554432): 33554467
least prime over 2^26( 67108864): 67108879
least prime over 2^27( 134217728): 134217757
least prime over 2^28( 268435456): 268435459
least prime over 2^29( 536870912): 536870923
least prime over 2^30( 1073741824): 1073741827
least prime over 2^31( 2147483648): 2147483659
least prime over 2^32( 4294967296): 4294967311
least prime over 2^33( 8589934592): 8589934609

STM32F407+LAN8720A+LwIP实战:FreeModbus TCP从机功能开发指南 本文详细介绍了基于STM32F407和LAN8720A硬件平台,结合LwIP协议栈实现FreeModbus TCP从机功能的开发指南。内容涵盖硬件连接、LwIP移植、FreeModbus TCP从机实现、任务调度及调试技巧,为工业控制领域的以太网通信开发提供实用参考。 阅读详情

相关推荐

word 2013 长篇文档排版案例教程

office 2013 制作长文格式模板

1万+

C++判断一个大于2的整数是否是素数

最近在学习乔林老师的C++教学视频。在算法一节有关于判断素数的内容,感觉挺有收获的,就想着跟大家分享一下。现在,让我们一起来学习吧。 1.面对素数合数检验,我们很容易就联想到暴力穷举的算法。 例如以下例程: /*解法一*/ bool IsPrime_1(unsigned int n) { unsigned int i = 2; while (i<n) { if (n%i == 0)...

Struggling_Jeff的博客 8138

【一文搞懂几种常用推荐算法】

协同过滤:适合用户-物品交互数据丰富的场景。矩阵分解:能处理稀疏数据,适合显式评分预测。基于内容:依赖物品特征,解决冷启动问题。NMF:适用于非负数据(如点击率、购买记录)。根据实际需求选择算法,或结合多种方法构建混合推荐系统。

专注技术的博主 2636

求大于n的最小质数

#include <iostream> #include <cmath> using namespace std; int GetPrime(int n) { int i,j,v,ok; for (i = n + 1;; i++) { ok = 1; v = sqrt(i); for (j = 2; j <= v; ++j) { if (i % j == 0) { ok = 0; break; } } if (ok

超级小四 2495

Rstudio安装org.Hs.eg.db

自己也是个小白,初次安装org.Hs.eg.db碰到好多问题,步骤总结如下: 第一,instal.packages()安装,不行则换 BiocManager::install() 第二,如BiocManager不成,说明不是最新版本,可按提示安装最新版 BiocManager::install(version = '3.13') #由于R版本较新,按照提示中的相关信息,安装最新版本的 第三,再次安装 BiocManager::install("org.Hs.eg.db") 第四,之后每个人.

ZH_DDong的博客 2万+

第14.11章 高翔博士最新开源框架Lightning-LM源码解读(十一):离线定位模块全解析,从激光匹配到位姿图优化的极致优化

本文介绍了Lightning-LM离线定位模块的技术架构与实现细节。该模块基于3D激光雷达与IMU融合,采用改进版NDT匹配算法实现高精度定位,具备动态图层更新、多源信息融合等特性。核心流程包括数据预处理、激光里程计处理、IMU预测与点云去畸变、位姿图优化等环节,通过轻量级miao库实现高效增量优化。文章详细解析了模块的代码结构、关键函数功能及数据流,为SLAM系统的开发与优化提供了实践参考。

行知SLAM 375

6-10 找出大于num的最小素数

本题要求实现一个函数:找出大于num的最小素数,并将其作为函数值返回。 函数接口定义: int Prime_number ( int N ); 其中N是用户传入的参数。N的值不超过int的范围,函数须返回 找到的满足条件的数。 裁判测试程序样例: #include<stdio.h> int Prime_number ( int N ); int main() { int num; scanf("%d",&num); printf...

m0_62864154的博客 4127

深度解析 Android 开发工程师岗位:技术栈、职责与面试全攻略

本文深度剖析Android开发工程师职位要求,从核心技术栈到面试准备进行全面解读。关键点包括:1)掌握Kotlin语言特性和Jetpack组件;2)具备UI开发、性能优化和逆向分析能力;3)理解MVVM架构和Room数据库;4)熟悉常用工具链和开发流程。文章提供了详细的面试题库及解析,涵盖基础概念、UI优化、架构设计等方向,并给出职业发展建议:夯实基础、拓展技术广度、培养工程素养。旨在帮助开发者系统性地准备Android岗位求职,把握移动开发领域的技术趋势。

郑伟强dev的专栏 172

求一个数字大于并最接近的2^N

知识准备 【无符号右移】 无符号右移运算符“>>>” - 同右移,但是结果全变正数。 【或】 |= 或运算二进制中只要一个为1就为1 正文 在hashMap源码中有相关操作,直接分析源码如下 //返回给定目标容量的2倍幂。将我们传入的容量设置为大于并最接近的2^N //补位,将原本为0的空位填补为1,最后加1时, //最高有效位进1,其余变为0,如此就可以取到最近的2的幂 static final int tab...

qq_36766417的博客 641

科研神器: 用Gemini 3

Edge藏了个科研开挂神器!免TZ/免谷歌账号用Gemini 3,1分钟上手(附保姆级教程) 做科研查文献、理数据总卡壳?想蹭Gemini 3的AI能力,却被“谷歌账号+TZ+节点筛选”三连劝退? 现在不用折腾了!Edge浏览器里装个插件,直接把Gemini 3揣进口袋——**免翻墙、免谷歌账号、国内直接用**,分分钟让你的科研效率翻三倍,导师都得问你“偷偷开了啥挂”!

ZhangJiqun&191cm&85kg 1159

置顶必读(3) |《滚雪球学SpringBoot》· 高质量专栏介绍,你值得拥有!

《滚雪球学SpringBoot》 并不是普通的技术讲解合集,它是专为开发者精心设计的系统化学习路径。通过不断“滚动学习”,我们将带领你从基础入门到高阶应用,从理解每一行代码到设计和优化大规模分布式系统,最终帮助你成长为一位精通 spring架构 的工程师。

**My Coding Family** 15万+

找出大于给定数数最小的素数

找出大于给定数数最小的素数 /* Return next prime; assume N >= 10 */ // 设置素数 static int NextPrime( int N ) { int i; if( N % 2 == 0 ) N

mandagod的博客 6250

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

2^n-1的因数分解问题

2^n-1的因数分解问题 我们只讨论正整数集合的问题,N=2n-1 (n∈正整数) 1、 当n=2*i, (i∈正整数) N=22i-1=(2i+1)(2i-1), 其最小因子为:i=1时,2+1=3,(21-1)=1 (因子1不考虑) 较大因子为(2i+1),(2i-1),关于(2i+1)的因子,参考前一篇文章,(2i-1)则循本篇文章规律。 2、 当n=3*i, (i∈正整数) N=23i-1, 其最小因子为:i=1时, (23-1)=7 3、 当n=4*i, (i∈正整数)

weixin_44125627的博客 5865

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

(数学)求包含 4^n 个因子的最小整数

在很久很久以前,CQW喜欢上了一个女孩,可是CQW是一个爆脾气。恰好这个女孩喜欢脾气好的男孩子。于是CQW为了追求这个女孩子,就跑去找巫师NCE。NCE听闻此事之后,告诉CQW在珠穆朗玛之巅有一瓶宝贵的神药可以帮他解决这个问题,并且告知CQW在神药外围有一道机关,这个机关需要让他求出最小的有4^n个因子的数是多少,这一下子难住了CQW,于是CQW向你发起了求助,不知道聪明的你能不能帮CQW完成心愿...

black_horse2018的博客 334

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

数论·质数

本文介绍了质数与合数的数学定义及三种常见算法:质数判定、质因数分解和质数筛选。质数判定采用试除法(O(√n)),通过检查√n范围内的因子判断是否为质数。质因数分解基于算术基本定理,使用试除法分解为质因数乘积。质数筛选算法包括暴力法(O(nlogn))、埃式筛(O(nloglogn))和最优的欧拉筛(O(n)),其中欧拉筛通过最小质因数标记确保每个合数只被处理一次。三种算法各有特点,适用于不同场景的质数处理需求。

2301_80132162的博客 418

【数论】| 判定质数、分解质因数、埃氏筛、线性筛

1. 试除法判定质数 bool isPrime(int x) { if (x<2) return false; for (int i=2;i<=x/i;i++) if (x%i==0) return false; return true; } 2. 分解质因数 void divide(int x) { for (int i=2;i<=x/i;i++) { //找当前的x的大于等于i的质数 if (x%i==0)

HangHug_L的博客 501

素数

最近需要个序列,要求接近2的幂,但又不能有公因子。为免除后患,决定取大于2^N的最小质数。 希望至少找到2^33次方,选用了筛法。由于需要8G以上内存,程序编译模式得选x64: (BTW:编写时发现VC++的new操作不能分配超过0x7FFFFFFF的内存,而malloc可以) [cpp] view plain copy // pri

Rosa_zz的博客 434

中北大学ACM 5/12 T6 CSY的幸福

题面: 给出一个整数N,求有4^N个因数的最小整数,结果对998244353取余,找到这个数字就能让CSY获得幸福。(N<=100000) (原题并不是CSY)去打AKM比赛,6道水题,2道蓝题,2道紫题,这道题大概在紫题水平?(我太菜了) 平常我AKM压得贼(bu)稳【雾】,考试翻车加爆炸只打出来4道(丢人) 看一眼题,第一个思路是质因数分解,因子个数即为每个质数的指...

weixin_34341229的博客 342

Wannafly24-b(扩展欧几里得算法)

链接:https://www.nowcoder.com/acm/contest/186/B 来源:牛客网   题目描述 小Y最近对质数产生了浓厚的兴趣,他认为2和3与其它所有质数具有不同寻常的关联,他正试图去寻找这些关系。可以知道,对于任意质数P&gt;=5,都存在正整数m,n使得P|(2m)*(3n)-1,且m+n&lt;=P。但小Y想知道对于一个质数P,满足上述条件的数对(m,n)中m+n...

Dog_dream的博客 379

HJ56 完全数计算【python3】

牛客华为机试HJ56

Yorusimo的博客 616

别再死算大数幂了!利用‘循环节’巧解‘2011^n的后四位’问题(手把手推导)

本文详细介绍了如何利用‘循环节’这一数学工具高效解决‘2011^n的后四位’问题。通过模运算的周期性规律,避免了暴力计算的复杂性,并提供了Python实现和通用解法框架,帮助读者掌握大数幂模运算的技巧。

weixin_30696427的博客 290

快速数论变换(NTT)

前置知识: 阶:对于互质整数 a,na,na,n ,满足 ar≡1mod  na^r \equiv 1\mod nar≡1modn 的最小的 rrr 就是 aaa 模 nnn 的阶。 原根:对于正整数 nnn ,若整数 aaa 模 nnn 的阶等于 φ(n)\varphi(n)φ(n) ,则称 aaa 为模 nnn 的一个原根。 快速数论变换 NTTNTTNTT,实际上就是利用一些特殊的质数(例如 998244353=119×223+1998244353=119\times2^{23}+1998244353

羊驼的博客 789

ICPC竞赛实战:质数、循环节与费马小定理的融合应用

在算法竞赛与密码学等领域,模运算和数论是基础而核心的技术概念。模运算定义了整数除法的余数系统,而费马小定理则是其重要推论之一,它指出当模数为质数且底数与模数互质时,底数的(模数减一次方)模运算结果为1。这一原理在工程实践中具有极高的技术价值,它为解决大指数模幂运算这一常见难题提供了关键思路——通过将指数对(模数减一)取模来大幅降低计算复杂度。其典型应用场景包括ICPC/ACM竞赛中涉及模幂计算的题目、RSA加密算法的加速计算,以及需要处理循环序列的各类算法问题。本文以一道融合了质数判断、循环节寻找与费马小定

weixin_30755393的博客 333

罗勇军 →《算法竞赛·快冲300题》每日一题:“质因子数量” ← 快速幂、素数筛

快速幂就是快速计算底数a的n次幂,其时间复杂度为O(log₂n)。 与朴素幂运算的时间复杂度O(n)相比,快速幂的计算效率有了极大的提高。 利用位运算实现快速幂,原理为:将十进制幂转换为二进制幂,然后利用二进制位间的倍增关系递推,达到快速计算幂的过程。

hnjzsyjyj的专栏 458

[bzoj 4833]最小公倍佩尔数

传送门 Description Let\((1+\sqrt2)^n=e(n)+f(n)\cdot\sqrt2\),both\(e(n)\)and\(f(n)\)areintegers Let\(g(n)\)bethegcdof\(f(1),f(2),...,f(n)\) given\(n\),\(p\),where\(p\)isaprime...

weixin_33941350的博客 169
上一篇: 打印源码自身的C++程序
下一篇: 关闭使用某个DLL的进程
CodeArhat
博客等级 码龄15年 13粉丝 38原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值