Skip to content

Instantly share code, notes, and snippets.

@aloknayak29
Created November 23, 2014 15:06
Show Gist options
  • Save aloknayak29/bb7389673c121e662bb6 to your computer and use it in GitHub Desktop.
Save aloknayak29/bb7389673c121e662bb6 to your computer and use it in GitHub Desktop.
Display the source blob
Display the rendered blob
Raw
{
"metadata": {
"name": "",
"signature": "sha256:8b057d67d592afe0e83e7fbb4ff3b53d4dd319ccb02a97b4bfedcfa4fe80ed2d"
},
"nbformat": 3,
"nbformat_minor": 0,
"worksheets": [
{
"cells": [
{
"cell_type": "code",
"collapsed": false,
"input": [
"n = int(raw_input())\n",
"while n:\n",
" n = n -1\n",
" h,m,s = map(int, raw_input().split(' '))\n",
" fm = 0\n",
" fh = 0\n",
" for s in xrange(s,60):\n",
" for p in pfdict[h]:\n",
" if (m % p == 0 and s % p == 0):\n",
" fm = fm + 1\n",
" for m in xrange(m+1,60):\n",
" for s in xrange(60):\n",
" for p in pfdict[h]:\n",
" if (m % p == 0 and s % p == 0):\n",
" fh = fh + 1\n",
" gcount = fm + fh\n",
" for ih in xrange(h+1, 24):\n",
" gcount = gcount +pfmcount[ih]**2"
],
"language": "python",
"metadata": {},
"outputs": []
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"def gcd(a,b):\n",
" r = a % b\n",
" while r > 0:\n",
" a, b, r = b, r, b%r\n",
" return b\n",
"n = int(raw_input())\n",
"while n:\n",
" n = n -1\n",
" h,m,s = map(int, raw_input().split(' '))\n",
" fm = 0\n",
" dfh = 0\n",
" acount = 0\n",
" bcount = 0\n",
" gcount = 0\n",
" for ls in xrange(s,60):\n",
" for p in pfdict[h]:\n",
" if (m % p == 0 and ls % p == 0):\n",
" fm = fm + 1\n",
" \n",
" dfh = pfmcount[h]*len([e for e in pfms[h] if e >= m+1])\n",
"# print 'dfh',dfh\n",
"# for im in xrange(m+1,60):\n",
"# for ls in xrange(1,60):\n",
"# for p in pfdict[h]:\n",
"# if (im % p == 0 and ls % p == 0):\n",
"# print im,ls,p\n",
"# fh = fh + 1\n",
"# print 'fh',fh\n",
" gcount = fm + dfh\n",
" for ih in xrange(h+1, 24):\n",
" gcount = gcount +pfmcount[ih]**2\n",
"#print gcount\n",
" acount = (23 - h)*3600 + (59 - m)*60 + (60 - s)\n",
"#print acount\n",
" bcount = acount - gcount\n",
" if gcount == 0 or bcount == 0:\n",
" print '%s:%s' % (gcount,bcount)\n",
" else:\n",
" if bcount > gcount:\n",
" mgcd = gcd(bcount, gcount)\n",
" else:\n",
" mgcd = gcd(gcount, bcount)\n",
" print '%s:%s' % (gcount/mgcd, bcount/mgcd)"
],
"language": "python",
"metadata": {},
"outputs": []
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"pfmcount[5]"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 70,
"text": [
"11"
]
}
],
"prompt_number": 70
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"pfdict = {}\n",
"pfmcount = {}\n",
"for i in xrange(24):\n",
" pft = tuple([j for j in xrange(i+1) if j in primes and (i % j == 0)])\n",
" #print pft\n",
" pfdict[i] = pft\n",
" if len(pft) == 2:\n",
" count = (60 / pft[0]) + (60/pft[1]) - 60/(pft[0]*pft[1])\n",
" elif len(pft) == 1:\n",
" count = 60 / pft[0]\n",
" else:\n",
" count = 0\n",
" \n",
" pfmcount[i] = count"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 4
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"primes = set([2,3,5,7,11,13,17,19,23])\n",
"#below is \n",
"pfms = {}\n",
"pfmcount = {}\n",
"for i in xrange(24):\n",
" pft = tuple([j for j in xrange(i+1) if j in primes and (i % j == 0)])\n",
" pset = set()\n",
" for p in pft:\n",
" pset.update(range(p,60,p))\n",
" pfms[i] = sorted(list(pset))\n",
" pfmcount[i] = len(pset)\n",
"#pfms"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 65
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"pfms"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 73,
"text": [
"{0: [],\n",
" 1: [],\n",
" 2: [2,\n",
" 4,\n",
" 6,\n",
" 8,\n",
" 10,\n",
" 12,\n",
" 14,\n",
" 16,\n",
" 18,\n",
" 20,\n",
" 22,\n",
" 24,\n",
" 26,\n",
" 28,\n",
" 30,\n",
" 32,\n",
" 34,\n",
" 36,\n",
" 38,\n",
" 40,\n",
" 42,\n",
" 44,\n",
" 46,\n",
" 48,\n",
" 50,\n",
" 52,\n",
" 54,\n",
" 56,\n",
" 58],\n",
" 3: [3, 6, 9, 12, 15, 18, 21, 24, 27, 30, 33, 36, 39, 42, 45, 48, 51, 54, 57],\n",
" 4: [2,\n",
" 4,\n",
" 6,\n",
" 8,\n",
" 10,\n",
" 12,\n",
" 14,\n",
" 16,\n",
" 18,\n",
" 20,\n",
" 22,\n",
" 24,\n",
" 26,\n",
" 28,\n",
" 30,\n",
" 32,\n",
" 34,\n",
" 36,\n",
" 38,\n",
" 40,\n",
" 42,\n",
" 44,\n",
" 46,\n",
" 48,\n",
" 50,\n",
" 52,\n",
" 54,\n",
" 56,\n",
" 58],\n",
" 5: [5, 10, 15, 20, 25, 30, 35, 40, 45, 50, 55],\n",
" 6: [2,\n",
" 3,\n",
" 4,\n",
" 6,\n",
" 8,\n",
" 9,\n",
" 10,\n",
" 12,\n",
" 14,\n",
" 15,\n",
" 16,\n",
" 18,\n",
" 20,\n",
" 21,\n",
" 22,\n",
" 24,\n",
" 26,\n",
" 27,\n",
" 28,\n",
" 30,\n",
" 32,\n",
" 33,\n",
" 34,\n",
" 36,\n",
" 38,\n",
" 39,\n",
" 40,\n",
" 42,\n",
" 44,\n",
" 45,\n",
" 46,\n",
" 48,\n",
" 50,\n",
" 51,\n",
" 52,\n",
" 54,\n",
" 56,\n",
" 57,\n",
" 58],\n",
" 7: [7, 14, 21, 28, 35, 42, 49, 56],\n",
" 8: [2,\n",
" 4,\n",
" 6,\n",
" 8,\n",
" 10,\n",
" 12,\n",
" 14,\n",
" 16,\n",
" 18,\n",
" 20,\n",
" 22,\n",
" 24,\n",
" 26,\n",
" 28,\n",
" 30,\n",
" 32,\n",
" 34,\n",
" 36,\n",
" 38,\n",
" 40,\n",
" 42,\n",
" 44,\n",
" 46,\n",
" 48,\n",
" 50,\n",
" 52,\n",
" 54,\n",
" 56,\n",
" 58],\n",
" 9: [3, 6, 9, 12, 15, 18, 21, 24, 27, 30, 33, 36, 39, 42, 45, 48, 51, 54, 57],\n",
" 10: [2,\n",
" 4,\n",
" 5,\n",
" 6,\n",
" 8,\n",
" 10,\n",
" 12,\n",
" 14,\n",
" 15,\n",
" 16,\n",
" 18,\n",
" 20,\n",
" 22,\n",
" 24,\n",
" 25,\n",
" 26,\n",
" 28,\n",
" 30,\n",
" 32,\n",
" 34,\n",
" 35,\n",
" 36,\n",
" 38,\n",
" 40,\n",
" 42,\n",
" 44,\n",
" 45,\n",
" 46,\n",
" 48,\n",
" 50,\n",
" 52,\n",
" 54,\n",
" 55,\n",
" 56,\n",
" 58],\n",
" 11: [11, 22, 33, 44, 55],\n",
" 12: [2,\n",
" 3,\n",
" 4,\n",
" 6,\n",
" 8,\n",
" 9,\n",
" 10,\n",
" 12,\n",
" 14,\n",
" 15,\n",
" 16,\n",
" 18,\n",
" 20,\n",
" 21,\n",
" 22,\n",
" 24,\n",
" 26,\n",
" 27,\n",
" 28,\n",
" 30,\n",
" 32,\n",
" 33,\n",
" 34,\n",
" 36,\n",
" 38,\n",
" 39,\n",
" 40,\n",
" 42,\n",
" 44,\n",
" 45,\n",
" 46,\n",
" 48,\n",
" 50,\n",
" 51,\n",
" 52,\n",
" 54,\n",
" 56,\n",
" 57,\n",
" 58],\n",
" 13: [13, 26, 39, 52],\n",
" 14: [2,\n",
" 4,\n",
" 6,\n",
" 7,\n",
" 8,\n",
" 10,\n",
" 12,\n",
" 14,\n",
" 16,\n",
" 18,\n",
" 20,\n",
" 21,\n",
" 22,\n",
" 24,\n",
" 26,\n",
" 28,\n",
" 30,\n",
" 32,\n",
" 34,\n",
" 35,\n",
" 36,\n",
" 38,\n",
" 40,\n",
" 42,\n",
" 44,\n",
" 46,\n",
" 48,\n",
" 49,\n",
" 50,\n",
" 52,\n",
" 54,\n",
" 56,\n",
" 58],\n",
" 15: [3,\n",
" 5,\n",
" 6,\n",
" 9,\n",
" 10,\n",
" 12,\n",
" 15,\n",
" 18,\n",
" 20,\n",
" 21,\n",
" 24,\n",
" 25,\n",
" 27,\n",
" 30,\n",
" 33,\n",
" 35,\n",
" 36,\n",
" 39,\n",
" 40,\n",
" 42,\n",
" 45,\n",
" 48,\n",
" 50,\n",
" 51,\n",
" 54,\n",
" 55,\n",
" 57],\n",
" 16: [2,\n",
" 4,\n",
" 6,\n",
" 8,\n",
" 10,\n",
" 12,\n",
" 14,\n",
" 16,\n",
" 18,\n",
" 20,\n",
" 22,\n",
" 24,\n",
" 26,\n",
" 28,\n",
" 30,\n",
" 32,\n",
" 34,\n",
" 36,\n",
" 38,\n",
" 40,\n",
" 42,\n",
" 44,\n",
" 46,\n",
" 48,\n",
" 50,\n",
" 52,\n",
" 54,\n",
" 56,\n",
" 58],\n",
" 17: [17, 34, 51],\n",
" 18: [2,\n",
" 3,\n",
" 4,\n",
" 6,\n",
" 8,\n",
" 9,\n",
" 10,\n",
" 12,\n",
" 14,\n",
" 15,\n",
" 16,\n",
" 18,\n",
" 20,\n",
" 21,\n",
" 22,\n",
" 24,\n",
" 26,\n",
" 27,\n",
" 28,\n",
" 30,\n",
" 32,\n",
" 33,\n",
" 34,\n",
" 36,\n",
" 38,\n",
" 39,\n",
" 40,\n",
" 42,\n",
" 44,\n",
" 45,\n",
" 46,\n",
" 48,\n",
" 50,\n",
" 51,\n",
" 52,\n",
" 54,\n",
" 56,\n",
" 57,\n",
" 58],\n",
" 19: [19, 38, 57],\n",
" 20: [2,\n",
" 4,\n",
" 5,\n",
" 6,\n",
" 8,\n",
" 10,\n",
" 12,\n",
" 14,\n",
" 15,\n",
" 16,\n",
" 18,\n",
" 20,\n",
" 22,\n",
" 24,\n",
" 25,\n",
" 26,\n",
" 28,\n",
" 30,\n",
" 32,\n",
" 34,\n",
" 35,\n",
" 36,\n",
" 38,\n",
" 40,\n",
" 42,\n",
" 44,\n",
" 45,\n",
" 46,\n",
" 48,\n",
" 50,\n",
" 52,\n",
" 54,\n",
" 55,\n",
" 56,\n",
" 58],\n",
" 21: [3,\n",
" 6,\n",
" 7,\n",
" 9,\n",
" 12,\n",
" 14,\n",
" 15,\n",
" 18,\n",
" 21,\n",
" 24,\n",
" 27,\n",
" 28,\n",
" 30,\n",
" 33,\n",
" 35,\n",
" 36,\n",
" 39,\n",
" 42,\n",
" 45,\n",
" 48,\n",
" 49,\n",
" 51,\n",
" 54,\n",
" 56,\n",
" 57],\n",
" 22: [2,\n",
" 4,\n",
" 6,\n",
" 8,\n",
" 10,\n",
" 11,\n",
" 12,\n",
" 14,\n",
" 16,\n",
" 18,\n",
" 20,\n",
" 22,\n",
" 24,\n",
" 26,\n",
" 28,\n",
" 30,\n",
" 32,\n",
" 33,\n",
" 34,\n",
" 36,\n",
" 38,\n",
" 40,\n",
" 42,\n",
" 44,\n",
" 46,\n",
" 48,\n",
" 50,\n",
" 52,\n",
" 54,\n",
" 55,\n",
" 56,\n",
" 58],\n",
" 23: [23, 46]}"
]
}
],
"prompt_number": 73
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"pfdict = {0: (),\n",
" 1: (),\n",
" 2: (2,),\n",
" 3: (3,),\n",
" 4: (2,),\n",
" 5: (5,),\n",
" 6: (2, 3),\n",
" 7: (7,),\n",
" 8: (2,),\n",
" 9: (3,),\n",
" 10: (2, 5),\n",
" 11: (11,),\n",
" 12: (2, 3),\n",
" 13: (13,),\n",
" 14: (2, 7),\n",
" 15: (3, 5),\n",
" 16: (2,),\n",
" 17: (17,),\n",
" 18: (2, 3),\n",
" 19: (19,),\n",
" 20: (2, 5),\n",
" 21: (3, 7),\n",
" 22: (2, 11),\n",
" 23: (23,)}"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 30
}
],
"metadata": {}
}
]
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment