banovski

Project Euler, Problem #3, C

Nov 30th, 2021 (edited)
536
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. /* Простые делители числа 13195 -- это 5, 7, 13 и 29. Каков самый
  2.    большой делитель числа 600851475143, являющийся простым числом? */
  3.  
  4. #include <stdio.h>
  5.  
  6. #define TBN 600851475143
  7. #define TTBN TBN / 3 + 2
  8.  
  9. int main()
  10. {
  11.      long int i, j, k, l;
  12.      for(i = 3; i < TTBN; i += 2)
  13.      {
  14.           if(TBN % i == 0)
  15.           {
  16.                k = TBN / i;
  17.                l = k / 3 + 2;
  18.                for(j = 3; j < l; j += 2)
  19.                     if(k % j == 0)
  20.                     {
  21.                          printf("Делитель %ld не простой: делится на %ld с результатом %ld.\n", k, j, k / j);
  22.                          break;
  23.                     }
  24.                if(j == l)
  25.                {
  26.                     printf("Наибольший простой делитель: %ld.\n", k);
  27.                     break;
  28.                }
  29.           }
  30.      }
  31.      return(0);
  32. }
  33.  
  34. // Делитель 8462696833 не простой: делится на 839 с результатом 10086647.
  35. // Делитель 716151937 не простой: делится на 71 с результатом 10086647.
  36. // Делитель 408464633 не простой: делится на 71 с результатом 5753023.
  37. // Делитель 87625999 не простой: делится на 71 с результатом 1234169.
  38. // Делитель 10086647 не простой: делится на 1471 с результатом 6857.
  39. // Делитель 5753023 не простой: делится на 839 с результатом 6857.
  40. // Делитель 1234169 не простой: делится на 839 с результатом 1471.
  41. // Делитель 486847 не простой: делится на 71 с результатом 6857.
  42. // Делитель 104441 не простой: делится на 71 с результатом 1471.
  43. // Делитель 59569 не простой: делится на 71 с результатом 839.
  44. // Наибольший простой делитель: 6857.
  45.  
  46.  
RAW Paste Data