【质数乘积且包含回文快速近积数】2021-11-22

【质数乘积且包含回文快速近积数】2021-11-22,第1张

质数乘积且包含回文快速近积数】2021-11-22

缘由https://bbs.csdn.net/topics/603462686    类似https://blog.csdn.net/xianfajushi/article/details/115666759

long long 快速近积数(long long 数)
{
	long long m = 1, j = 数;
	while (j > m)m *= 10, j /= 10;
	if (!j)j = m;
	while (m /= 2)
	{
		while (j * j > 数)j -= m;
		while (j * j < 数)j += m;
	}
	return (j * j > 数 ? --j : j);
}



	long long a = 1;
	while (a <= 10000000000)
		cout << a << "=" << 快速近积数(a) << "t", a += a;
可用于开平方,小数4位要加双倍的0,如7开平方
	long long a = 700000000; std::cout << (a = 快速近积数(a)) << "t" << a*a << std::endl;

void 质数乘积()
{//缘由https://bbs.csdn.net/topics/603462686
	long long a = 7140229933, z = 1, s = a / z;
	while ((z += 2) <= (s = a / z))
	if (质数判断(z) && 质数判断(s) && s * z == a)
	//if (z == 整数逆序(z) || s == 整数逆序(s))
		std::cout << z << "t" << s << "n";
}



void 质数乘积()
{//缘由https://bbs.csdn.net/topics/603462686
	long long a = 7140229933, z = a, s = 0;
	z = 快速近积数(z);
	std::cout << z << "快速近积数tn"; 
	if (!(z % 2))--z;
	while ((z -= 2) <= (s = a / z))
		if (质数判断(z) && 质数判断(s) && s * z == a)
			//if (z == 整数逆序(z) || s == 整数逆序(s))
			std::cout << z << "t" << s << "n", z = 0;
}

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5691940.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存