Tag: 平方根

查找整数的所有因子的有效算法是什么?

我正在编写一个非常简单的程序来检查一个数字是否可以均匀地划分另一个数字: // use the divider squared to reduce iterations for(divider = 2; (divider * divider) <= number; divider++) if(number % divider == 0) print("%d can divided by %d\n", number, divider); 现在我很好奇是否可以通过找到数字的平方根并将其与分频器进行比较来完成任务。 但是,似乎sqrt()实际上无法提高效率。 如何在C中处理sqrt()以及如何提高sqrt()的效率? 此外,还有其他方法可以更高效地解决问题吗? 而且, number % divider == 0 用于测试分频器是否可以均匀划分数字,除了使用%之外还有更有效的方法进行测试吗?

使用Newton-Raphson方法在C中的平方根

在下面的代码中,我想将终止条件替换为:如果guess square和x的比率接近1,则loop应该终止。 我尝试了各种表达式,但都没有正确运行代码。 有什么建议吗? # include float absolute(float x) { if (x = 0.0001 ) guess = ((x/guess) + guess) / 2; return guess; } int main(void) { printf(“square root of 2 is %f\n”, square(2)); printf(“square root of 3 is %f\n”, square(3)); return 0; }

浮在C上的麻烦

我在C中有这个小程序,它使用递归函数(使用while循环实现)计算正整数N平方根x 。 如果我用这个计算x : x = (1/2)*(x + N/x) //x0 = 1.0 然后x继续增长到inf,然后是nan。 但是,如果我使用这个: x = (x + N/x)/2 //x0 = 1.0 它工作正常,为什么? 谢谢。