Advertisement
Guest User

Untitled

a guest
Feb 28th, 2015
190
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.99 KB | None | 0 0
  1. #include <cstdio>
  2. #include <cmath>
  3.  
  4. int countFactors(int fator, int num)
  5. {
  6. int quantidade = 0;
  7. while (num % fator == 0)
  8. {
  9. quantidade++;
  10. num = num / fator;
  11. }
  12. return quantidade;
  13. }
  14.  
  15. int checkPrimo(int primo)
  16. {
  17. if (primo == 2 || primo == 3 || primo == 5)
  18. return 1;
  19. if (primo%2 == 0)
  20. return 0;
  21. if (primo % 3 == 0)
  22. return 0;
  23. if (primo % 5 == 0)
  24. return 0;
  25.  
  26. int i;
  27. int max = round(sqrt(primo));
  28. for (i = 1; (6*i+5) <= max; i++)
  29. {
  30. if (primo % (6*i + 1) == 0 || primo % (6*i + 5) == 0)
  31. {
  32. return 0;
  33. }
  34. }
  35. return 1;
  36. }
  37.  
  38. int main()
  39. {
  40. int t;
  41. scanf("%d", &t);
  42. int i;
  43. for (i = 0; i < t; i++)
  44. {
  45. long long int num;
  46. scanf("%lld", &num);
  47. if (checkPrimo(num))
  48. {
  49. printf("Caso #%d: %d\n",i+1, num*num);
  50. continue;
  51. }
  52. int fator;
  53. for (fator = 2; fator < num; fator++)
  54. {
  55. if (checkPrimo(fator))
  56. {
  57. if (countFactors(fator, num) % 2 == 1)
  58. num = num * fator;
  59. }
  60. }
  61. printf("Caso #%d: %lld\n", i+1, num);
  62. }
  63. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement