fork(3) download
  1. from fractions import gcd
  2. n,k=map(int,raw_input().split())
  3. ans=1;
  4.  
  5. def rec(cur,rem,v):
  6. global ans
  7. if v>ans:
  8. ans=v
  9. if cur==0 or rem==0:
  10. return
  11. #choose cur
  12. if v*(cur**rem) <= ans:
  13. return;
  14. if gcd(v,cur) == 1:
  15. rec(cur-1,rem-1,v*cur)
  16. #don't choose cur
  17. rec(cur-1,rem,v)
  18.  
  19. def isprime(x):
  20. i=2
  21. while i*i<=x:
  22. if x%i == 0:
  23. return False;
  24. i+=1
  25. return True;
  26.  
  27. cur,rem=n,k;
  28. ans=1;
  29. while cur>1 and rem>0:
  30. if isprime(cur):
  31. ans*=cur;
  32. rem-=1;
  33. cur-=1;
  34.  
  35. rec(n,k,1);
  36. print ans%(int(1e9+7));
  37.  
Success #stdin #stdout 0.02s 8656KB
stdin
1000 4
stdout
40932107