В соответствии с YouTube linkпростые множители из нечетного числа может быть рассчитана следующим образом:Ферма алгоритм для вычисления простых множителей
а = SQRT (N + Ь^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;
}
Этот вопрос по-прежнему не получил ответа, поэтому, пожалуйста, перейдите и разместите свои решения. –