Wednesday, 24 November 2021

Bachgold Problem !!!

 PROBLEM 5: Bachgold Problem


      Problem Reference : Codeforces   

Bachgold problem is very easy to formulate. Given a positive integer n represent it as a sum of maximum possible number of prime numbers. One can prove that such representation exists for any integer greater than 1.

Recall that integer k is called prime if it is greater than 1 and has exactly two positive integer divisors — 1 and k.


Input:

The only line of the input contains a single integer n (2 ≤ n ≤ 100 000).


Output:

The first line of the output contains a single integer k — maximum possible number of primes in representation.

The second line should contain k primes with their sum equal to n. You can print them in any order. If there are several optimal solution, print any of them.

Solution:

  1. import sys
  2. n = int(input())
  3. cnt = 0
  4. l = []
  5. if n == 3:
  6. print('1')
  7. print('3')
  8. sys.exit()
  9. if n % 2 == 0:
  10. while n > 0:
  11. cnt+=1
  12. n = n - 2
  13. l.append('2')
  14. print(cnt)
  15. for j in l:
  16. print(j,end=' ')
  17. else:
  18. while n > 0:
  19. cnt+=1
  20. n = n - 2
  21. l.append('2')
  22. if n == 3:
  23. n = n - 3
  24. cnt+=1
  25. l.append('3')
  26. break
  27. print(cnt)
  28. for j in l:
  29. print(j,end=' ')

The above solution is in python language.
Examples
input
5
output
2
2 3
input
6
output
3
2 2 2

No comments:

Post a Comment

Rearrange an array with O(1) extra space

  PROBLEM 61:  Rearrange an array with O(1) extra space (For best view experience, view in windows version) Problem Reference : GeeksForGeek...