2014-09-09 7 views
-1

Это простая программа, написанная на языке C, которая запрашивает у пользователя около int n.
Каков наилучший способ нахождения наивысшей разницы между двумя последовательными простыми числами от 2 до n?Наивысшая разница между двумя последовательными простыми числами

int main() { 
    int n, i, j, c; 
    clrscr(); 
    printf("Enter Range To Print Prime Numbers:"); 
    scanf("%d", &n); 
    printf("Prime Numbers Are Following:\n"); 
    for(i=1, c=0; i<=n; i++) { 
     for (j=1; j<=i; j++) 
      if (i % j == 0) 
       c++; 
     if (c == 2) 
      printf("%d ", i); 
    } 

    printf("\n\n The highest difference between numbers is:"); 

    /* logic i cant get */ 
    getch(); 
} 
+1

Первый и последний будут иметь наибольшую разницу. – haccks

+1

@haccks Я предполагаю, что отсутствует слово «последовательный» – dasblinkenlight

+0

@dasblinkenlight; Я знаю :) – haccks

ответ

1

Keep след наибольшая разница между двумя последовательными простыми числами в переменной, и если новая разность больше, замените переменную с новой разницей.

int maxDifference = 0; 
int currentDifference; 

// begin looping 
currentDifference = calculateNewDifference(); 

if(currentDifference > maxDifference) { 
    maxDifference = currentDifference; 
} 
+0

newDifference ?? – tabia

+0

Извините, это был псевдокод. Это разница между двумя самыми новыми простыми числами. – AGreenman

+0

Если он борется с логикой, я не думаю, что эффективность его самая большая проблема. – AGreenman

Смежные вопросы