【发布时间】:2015-10-20 18:16:09
【问题描述】:
根据youtubelink质因数可以计算如下:
a = sqrt(N + b^2)
我写了下面的程序来做到这一点,但我没有得到 2345678917 的素数。我知道这是素数,但对于其他素数,程序确实返回 1 和数字本身,但对于这个数字它没有发生。为什么?
#include <stdio.h>
#include <math.h>
void foo(unsigned long long x)
{
int i;
for (i=1;i<x;i++)
if (fmod(sqrt(x + i*i), 1) == 0) {
printf("%f %f\n", (sqrt(x + i*i) - i), (sqrt(x + i*i)+i));
return;
}
}
int main(void) {
foo((unsigned long long)2345678917);
return 0;
}
【问题讨论】:
-
这个问题仍然没有答案,所以请继续发布您的解决方案。
标签: algorithm math prime-factoring