我想找到一个数字的所有精确除数。目前我有这个:
{
int n;
int i=2;
scanf("%d",&n);
while(i<=n/2)
{
if(n%i==0)
printf("%d,",i);
i++;
}
getch();
}
有什么办法可以改善它?
首先,您的代码应具有条件i <= n/2
,否则它可能会遗漏其中一个因素,例如,如果n = 12,则不会打印6。
将循环运行到数字的平方根(即i <= sqrt(n)
),并同时打印i
和n/i
(均为n的倍数)。
{
int n;
int i=2;
scanf("%d",&n);
while(i <= sqrt(n))
{
if(n%i==0) {
printf("%d,",i);
if (i != (n / i)) {
printf("%d,",n/i);
}
}
i++;
}
getch();
}
注意 :
i*i == n
@ chepner建议在循环末尾进行其他检查。我有N个数字,让我们说。现在我想找出在给定范围内有多少对数字。(L和R给定)。数字对=两个数字相同。我的方法:
我在一次采访中被问到以下问题。虽然我用n元树回答了这个问题,但有人告诉我这还不够好。所以,我很好奇,什么是它的最佳解决方案。 输入:整数数组:[2,3,7]和总和:10 输出:加起来等于和的所有数组元素组合(例如2、2、3、3、7等) 谢了小泰
让一个整数的二进制搜索树创建一个包含所有小于给定整数x值的整数的链表。 我试过什么? 1)粗暴的解决方案(效率低下) BST 的顺序访问,我在列表中为每个整数 int the BST 插入一个节点,然后我从 x 开始释放列表中的每个节点 2)效率更高但错误 我进行了一次搜索,当我找到x时,我创建了一个列表,其中有序地访问了我找到x的节点的左边的子节点。 这显然是错误的,例如考虑到以下BST: 对于
根据这个帖子,我们可以通过下面的代码得到一个数的所有约数。 例如,数字的除数是。 在搜索了一些相关的帖子后,我没有找到任何好的解决方案。有什么有效的方法来实现这一点吗? 我的解决方案: 通过这个解求出给定数的所有素因子 得到这些基本因子的所有可能组合 然而,这似乎不是一个好办法。
希望这对你来说是有意义的,我很乐意更详细地解释这个问题。
本文向大家介绍程序查找C ++中给定范围内具有奇数除数的数的计数,包括了程序查找C ++中给定范围内具有奇数除数的数的计数的使用技巧和注意事项,需要的朋友参考一下 在本教程中,我们将讨论一个程序来查找给定范围内除数为奇数的数。 为此,我们将提供范围的上限和下限。我们的任务是计算和计算除数为奇数的值的数量。 示例 输出结果
例如:2520是被1到10的每个数字除以的最小正数。 请帮助我使用SQL逻辑查找1到20之间的最小正数
给定一个正整数(以数字数组的形式)。我们可以交换给定数字中的一对数字。我们需要返回可以获得的最小整数。注意,它应该是一个有效的整数,即不应该包含前导0。 例如:- 93561 返回 13569 596 返回 569 10234 返回 10234 120 返回 102 10091 返回 10019 18761119 98761111退货 这个问题是否有算法。我想出了几种方法:- < li >找到mi