2015-03-07 3 views
-2

Мне нужно написать код, в котором вы вводите число, и он проверяет, что данное число является двойным простым числом с последующим простым числом. Вот то, что я до сих пор:Программа, которая выводит двойные простые числа

int isPrime (int Value){ 
    int Number; 
     for (Number=2; Number <= Value-1; Number++){ 
     if (Value % Number ==0) 
      return 0; 
     else 
      return 1; 
} 
} 
int nextPrime(int current){ 
    while (1){ 
    if (isPrime(current)) 
     return current; 
     current++; 
    } 
} 
int main(){ 
    int a; 
    int First = nextPrime (a); 
    int Second = nextPrime(First + 1); 
    scanf("%d", &a); 
    if (Second - First == 2) { 
     printf("%d and %d are twin primes.", First, Second); 
    } else { 
     printf("%d and %d are not twin primes.", First, Second); 
    } 
    return 0; 
} 
+0

вы можете оставить то, что ошибка, которую вы получаете или ожидаемый выход? – Stedy

ответ

0

Как она стоит a не инициализирован с первым вызовом nextPrime(a). Для того, чтобы получить что-либо, кроме неопределенного поведения вы должны прочитать значение входного перед тем вызовом scanf так что это значение было инициализирован для ввода пользователя:

int a; 
int First; 
int Second; 

scanf("%d", &a); /* move this line before the nextPrime calls */ 
First = nextPrime (a); 
Second = nextPrime(First + 1); 
+0

Большое спасибо! Вот так! Теперь он отлично работает. Это всегда что-то маленькое. Я новичок в программировании на C, и я не могу найти никакой помощи нигде, и я этого не понимаю, поэтому я не знал, что мне пришлось переключать эту часть кода. Но спасибо вам еще раз! :) – Timmy

+0

@ Тимми рад, что это помогло. Чтобы облегчить будущим читателям знать, есть ли у них аналогичная проблема, и помогать им в этом Q & A, я предлагаю вам отредактировать свой вопрос, чтобы включить описание проблемы, которую вы имели (например, «Компиляция кода, но программа, кажется, застревает и никогда ничего не печатает », или« когда я ввожу вход _X_, я бы ожидал ... но я получаю ... вместо этого »). – SleuthEye

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