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

2021-10-19 C++奇怪数

缘由求:用c++求出1000以内的所有奇怪数-编程语言-CSDN问答
奇怪数为这样一个整数
①:除了自身以外所有因子之和大于这个数本身(首先必须是盈数)
②:除了自身以外所有因子的集合,没有任何一个子集中所有数的和等于这个数本身(数组的子集可以是单个以及2个以上连续的)

void 奇怪数()
{//缘由https://ask.csdn.net/questions/7536352?spm=1005.2025.3001.5141
	int 因子集[47]{0}, 数 = 10, 序 = 0, 和 = 0, 双 = 0, 算 = 0;
	bool 判 = true;
	while (数 <= 1000)
	{
		求因子集合(数, 因子集, &和, &序);
		sort(因子集, 因子集+序+1);//算法原则:连续子集集合累加累减,非连续子集用差寻找并从最大起搜寻
		//算 = 和;
		//while (双 <= 序)
		//{
		//	if (((和 -= 因子集[双]) == 数 || (算 -= 因子集[序 - 双]) == 数)&&(和>数&&算>数))判 = false;
		//	++双;
		//}
		if (和 > 数)
			判 = (子集数(数, 因子集, 序) > 0 ? true : false);
		else 判 = false;
		if (判)
			cout << 数 << ends;
		//双 = 0; while (++双 <= 序)因子集[双] = 0;
		数 += 2; 判 = true; 序 = 和 = 双 = 算 = 0;
	}
}
void 求因子集合(int 数, int* 数组, int* 和, int* 序)
{
	int 求 = 1, 商 = 0;//因子不含数本身但包含1
	*和 = 数组[0] = 求;
	while (++求 <= (商 = 数 / 求))
		if (!(数 % 求))
		{
			*和 += 数组[++*序] = 求;
			if (求 != 商)
				*和 += 数组[++*序] = 商;
		}
}
int 子集数(int 数, int* 数组, int 序)
{
	int x = 0;
	while (x <= 序)
	{
		if (数组[序 - x] <= 数)
			数 -= 数组[序 - x];
		++x;
	}
	return 数;
}

int 子集数(int 数, int* 数组, int 序)
{
	int x = -1;
	while (++x <= 序 && 数)
	if (数组[序 - x] <= 数)
		数 -= 数组[序 - x];
	return 数;
}

http://www.dtcms.com/a/123121.html

相关文章:

  • 牟乃夏《ArcGIS Engine地理信息系统开发教程》学习笔记1
  • MCU控制4G模组(标准AT命令),CatM的最大速率?
  • 学习笔记四——Rust 函数通俗入门
  • 城电科技 | 从概念到落地:如何打造真正的智慧零碳园区?
  • 粘性定位(position:sticky)——微信小程序学习笔记
  • Diffusion Policy Visuomotor Policy Learning via Action Diffusion官方项目解读(二)(6)
  • 阿里云 AI 搜索开放平台:从算法到业务——AI 搜索驱动企业智能化升级
  • js逆向入门图灵爬虫练习平台第六题
  • AI小程序+SpringAI+管理后台+源码+支持动态添加大模型+支持动态添加AI应用
  • ESP8266水位监测以及温湿度数据采集
  • 008二分答案+贪心判断——算法备赛
  • HDCP(二)
  • 爱普生TG-5510CA和TG-5510CB晶振成为服务器中的理想之选
  • SLAM文献之SuMa++: Efficient LiDAR-based Semantic SLAM
  • AI测试之Midscene.js
  • 英语单词 list 9
  • 图神经网络+多模态:视频动作分割的轻量高效新解法
  • Vue3的Composition API与React Hooks有什么异同?
  • 深度学习总结(6)
  • 皮质醇水平高低对健康的影响及科学建议
  • 【AI论文】GPT-4o图像生成能力的实证研究
  • DP主站如何华丽变身Modbus TCP网关!
  • 表格计算 | 第六届蓝桥杯国赛JavaB组
  • linux下io操作详细解析
  • Pandas分块读取技术:高效处理大数据的秘密武器
  • Mysql自动增长数据的操作(修改增长最大值)
  • go-zero学习笔记(六)---gozero中间件介绍
  • nacos配置达梦数据库驱动源代码步骤
  • 【Scrapy】Scrapy教程12——中间件
  • list的使用以及模拟实现