据的YouTube link素因子奇数可以如下计算:费马算法素因子计算
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;
}
此问题仍未解决,请继续并发布您的解决方案。 –