boucle do while (Oui/Non d'invite utilisateur

Mon programme qui trouve les facteurs premiers est tous ensemble...la seule chose que je dois faire est ce type de sortie:

Voulez-vous essayer un autre numéro? Dire Y(es) ou N(o): o
//demande pour un autre nombre (traverse de nouveau le programme)

Voulez-vous essayer un autre numéro? Dire Y(es) ou N(s): n
//Merci pour l'aide de mon programme. Au Revoir!

J'ai ma tentative à cet égard, ci-dessous...Quand j'type n il ne le bon de sortie. Mais si je tape "y", il a juste dit la même chose n t....Comment puis-je boucle l'ensemble du programme sans mettre le code pour le programme à l'intérieur de cette boucle que j'ai? Alors, quand j'appuie sur y, il traverse à nouveau le programme?

int main() {
  unsigned num;
  char response;

  do{
    printf("Please enter a positive integer greater than 1 and less than 2000: ");
    scanf("%d", &num);
    if (num > 1 && num < 2000){
      printf("The distinctive prime facters are given below: \n");
      printDistinctPrimeFactors(num);
      printf("All of the prime factors are given below: \n");
      printPrimeFactors(num);
    }
    else{
      printf("Sorry that number does not fall within the given range. \n");
    }
    printf("Do you want to try another number? Say Y(es) or N(o): \n");
    response = getchar();
    getchar();
  }
  while(response == 'Y' || response == 'y');
  printf("Thank you for using my program. Goodbye!");

  return 0;
} /* main() */