fork download
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. /* funcao capaz de verificar se um numero eh primo */
  5. int eh_primo( unsigned long long n )
  6. {
  7. unsigned long long i = 0;
  8.  
  9. if(n <= 1)
  10. return 0;
  11.  
  12. if( (n % 2) == (0 && n > 2) )
  13. return 0;
  14.  
  15. for( i = 3; i < n / 2; i += 2 )
  16. if( n % i == 0 )
  17. return 0;
  18.  
  19. return 1;
  20. }
  21.  
  22.  
  23. int main( void )
  24. {
  25. unsigned long long k, m, n;
  26. unsigned long long soma = 0;
  27. unsigned long long contador = 0;
  28. long double media;
  29.  
  30. scanf("%llu%llu",&m,&n);
  31.  
  32. /* Verifica se o intervalo eh valido*/
  33. if( n > m )
  34. {
  35. /* percorre todos os numeros no intervalo */
  36. for( k = m; k <= n; k++ )
  37. {
  38. /* verifica se o numero atual eh um primo */
  39. if( eh_primo(k) )
  40. {
  41. /* faz o somatorio do numero primo encontrado */
  42. soma += k;
  43.  
  44. /* incrementa contador de numeros primos */
  45. contador++;
  46. }
  47. }
  48. }
  49.  
  50. /* se houver ao menos um numero primo no intervalo, calcula a media */
  51. if( contador > 0 )
  52. {
  53. /* Calcula media aritmetica dos primos */
  54. media = soma / (long double) contador;
  55.  
  56. /* exibe a media aritmetica na tela */
  57. printf("media = %Lg\n", media );
  58. }
  59.  
  60. /* exibe contador de numeros primos no intervalo */
  61. printf("contador = %llu\n", contador );
  62.  
  63. /* exibe o somatorio na tela */
  64. printf("somatorio = %llu\n", soma );
  65.  
  66. return EXIT_SUCCESS;
  67. }
  68.  
  69. /* fim-de-arquivo */
  70.  
Success #stdin #stdout 0.84s 9424KB
stdin
1 100000
stdout
media = 47377.4
contador = 9591
somatorio = 454396535