Я делаю проблему 3 в Project Euler в поиске самого большого gcd. Я должен найти gcd для 600851475143m, но я хочу найти его с меньшим числом, прежде чем я это сделаю. Вот ссылка на проблему, я пишу это в С.найти самые большие проблемы с контуром gcd
http://projecteuler.net/problem=3
У меня возникли проблемы с моим циклом. Мой алгоритм состоит в том, чтобы иметь увеличивающееся число (i) продолжать делить данное число тогда и только тогда, когда остаток равен нулю. Данное число уменьшается по мере его деления. Если i и a равно заданному числу, то i является наибольшим GCD.
Вот мой код:
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main()
{
int origNumber = 13195;
int i = 2;
while(origNumber/i != 1 && origNumber % i != 0)
{
if(origNumber % i == 0)
{
origNumber = origNumber/i;
}
if(origNumber == i)
break;
i++;
printf("origNumber = %d i = %d\n", origNumber, i);
}
}
Опишите проблему, о которой вы говорите? –
Веб-сайт Project Euler довольно ясен по издательским решениям - он активно обескуражен. http://projecteuler.net/about – gavinb