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

c++一个数因子和(快速求解)

void 一个数因子和(int 整数)
{//缘由https://ask.csdn.net/questions/1054457#answer_1251715int he = 0, j = 0; string a = "";while (++j < 整数)if (!(整数%j))he += j, a += to_string(j) + "+";cout << a << "的因子和:" << he << endl;
}int a = 0; cout << "输入一个整数:"; cin >> a;	一个数因子和(a);

还真是不比贴主的快,引起我认真审题,修改一下,比贴主更快。循环到整数的二分之一速度快,但是求二分之一要放到循环外预先计算。还可以继续优化到更快。

void 一个数因子和(int 整数 = 44)
{//缘由https://ask.csdn.net/questions/1054457#answer_1251715int he = 0, j = 1, jj = 整数 / 2; string a = "";while (j < jj)if (!(整数%j))he += j, a += to_string(j) + "+", ++j; else ++j;cout << 整数 << "=>" << a << "的因子和:" << he << endl;
}

一个数的因子集合是能被整除的除数与商数的集合。 

void 快速数因子和(int& jj, int 整数 = 447744774)
{//一个数的因子集合是能被整除的除数与商数的集合。缘由https://ask.csdn.net/questions/1054457#answer_1251715unsigned long int 和 = 0, 除数 = 1, 商数 = 整数, 开方 = sqrt(整数); string 观察 = "";while (++除数 < 商数 && 除数 <= 开方)if (!(整数 % 除数)){和 += 除数 + (商数 = 整数 / 除数),观察 += to_string(除数) + "+",观察 += to_string(商数) + "+";if (除数 + 除数 >= 商数){ ++jj; 观察 += "☆"; break; }}cout << 整数 << "=>" << 观察 << "的因子和:" << (和 += 1) <<ends<<jj<< endl;//if (和 == 整数)
}int aa = INT_MAX - 1, j = 1111111, 起始 = 44, 结束11 = 1111799, jj = 0;while ((j += 2) < 结束11)if (j >= 起始&&判断素数(j))cout << j << ends;while (j++ < 结束11)快速数因子和(jj,j);快速数因子和(jj, aa);

完美数的确用开方作为结束比较快,优化的地方我没错,问题出在结束用商,对于某些数是不适合的,这一点也注意到了,尤其是遇到质素时,正好这个做了个验证。很多数用商是比较接近开方的。//int 整数 = 9999;//while (--整数)//{//	int 和 = 1, 除数 = 1, 商数 = 整数, 开方 = sqrt(整数);//	while (++除数 <= 开方){if (!(整数 % 除数))和 += 除数 + (整数 / 除数);if (除数 + 除数 >= 商数)break;/*虽然这个判断只有20%命中率也算是个小优化可减少循环次数*/}//	if (和 == 整数)cout << 整数 << ends;////}

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • C++ 设计模式——解释器模式
  • 契约锁亮相2024帆软第六届智数大会,助力业务数据安全可信
  • Swagger UI 无法发送 Cookie
  • css——网格布局
  • Qt:玩转QPainter后转之时钟(步骤详细、包含源码)
  • Notepad++ 下载安装教程
  • 未来出行:高效智能的汽车充电桩
  • 亚信安慧AntDB数据库与华为DPA数据保护一体机完成兼容性互认证,共筑数据安全与效率新高地
  • 使用Conda内部环境的CUDA而不是系统层面上安装的CUDA
  • 【专题】2024年8月医药行业报告合集汇总PDF分享(附原数据表)
  • JS设计模式之“分即是合” - 建造者模式
  • Deep Ocr
  • 828华为云征文|华为云服务器Flexus X搭建悟空crm管理系统——助力企业云上管理(解决APP Referer校验失败问题)
  • Linux中的Vim文本编辑器
  • 设计模式之装饰器模式:让对象功能扩展更优雅的艺术
  • Android组件 - 收藏集 - 掘金
  • Angularjs之国际化
  • download使用浅析
  • If…else
  • JavaScript 一些 DOM 的知识点
  • Java面向对象及其三大特征
  • JSDuck 与 AngularJS 融合技巧
  • Laravel Telescope:优雅的应用调试工具
  • SQL 难点解决:记录的引用
  • -- 查询加强-- 使用如何where子句进行筛选,% _ like的使用
  • 翻译--Thinking in React
  • 基于Android乐音识别(2)
  • 浅谈Kotlin实战篇之自定义View图片圆角简单应用(一)
  • 文本多行溢出显示...之最后一行不到行尾的解决
  • 责任链模式的两种实现
  • 400多位云计算专家和开发者,加入了同一个组织 ...
  • ​Distil-Whisper:比Whisper快6倍,体积小50%的语音识别模型
  • ​LeetCode解法汇总518. 零钱兑换 II
  • #Z2294. 打印树的直径
  • #中的引用型是什么意识_Java中四种引用有什么区别以及应用场景
  • ( 10 )MySQL中的外键
  • (2)从源码角度聊聊Jetpack Navigator的工作流程
  • (AngularJS)Angular 控制器之间通信初探
  • (Bean工厂的后处理器入门)学习Spring的第七天
  • (Java数据结构)ArrayList
  • (LLM) 很笨
  • (MATLAB)第五章-矩阵运算
  • (Matlab)遗传算法优化的BP神经网络实现回归预测
  • (二)构建dubbo分布式平台-平台功能导图
  • (二刷)代码随想录第15天|层序遍历 226.翻转二叉树 101.对称二叉树2
  • (附源码)计算机毕业设计SSM智慧停车系统
  • (十二)Flink Table API
  • (未解决)jmeter报错之“请在微信客户端打开链接”
  • (转)淘淘商城系列——使用Spring来管理Redis单机版和集群版
  • (轉貼) 資訊相關科系畢業的學生,未來會是什麼樣子?(Misc)
  • **Java有哪些悲观锁的实现_乐观锁、悲观锁、Redis分布式锁和Zookeeper分布式锁的实现以及流程原理...
  • *上位机的定义
  • .NET MVC、 WebAPI、 WebService【ws】、NVVM、WCF、Remoting
  • .net 开发怎么实现前后端分离_前后端分离:分离式开发和一体式发布
  • .NET 中的轻量级线程安全