fork download
  1. #include <iostream>
  2. using namespace std;
  3. int num;
  4. int max=2017;
  5.  
  6.  
  7. bool is_prime (int num);
  8. bool co_prime (int a, int b);
  9. int phi (int k);
  10. int main()
  11. {
  12.  
  13. //cout<<phi(2048)<<endl;
  14. int sum=0;
  15. for (int num=1; num<=2017; num++)
  16. {
  17. sum= sum+ phi(num);
  18. //cout<<num<< "-->" <<phi(num)<<endl;
  19. }
  20.  
  21. cout<<sum<<endl;
  22. return 0;
  23. }
  24. int phi(int k)
  25. {
  26. int count=0;
  27. if (k==1)
  28. return 1;
  29. if (is_prime(k))
  30. return k-1;
  31. for (int i=1; i<=k; i++)
  32. {
  33. if (co_prime(i, k))
  34. count++;
  35. }
  36.  
  37. return count;
  38. }
  39. bool is_prime(int num)
  40. {
  41.  
  42. int k=num/2;
  43. while (k>1)
  44. {
  45. if (num%k ==0)
  46. {
  47. // cout<<num<<" is comp."<<endl;
  48. return false;
  49. }
  50. k--;
  51. }
  52. return true;
  53. }
  54.  
  55. bool co_prime (int a, int b)
  56. {
  57. if (is_prime(a) && is_prime(b))
  58. return true;
  59.  
  60. else
  61. {
  62. int k=2;
  63. while (k<=a)
  64. {
  65. if (a%k==0 && b%k==0)
  66.  
  67. return false;
  68. k++;
  69. }
  70. return true;
  71. }
  72.  
  73. }
Success #stdin #stdout 2.48s 15240KB
stdin
Standard input is empty
stdout
1237456