Current work thus far

Changes to be committed:
	new file:   079PassDerive.py
	new file:   085CountTriangle.py
	new file:   101TriangleContain.py
	new file:   102_triangles.py
	new file:   112_bouncy.py
	new file:   187_semiprime/187_semiprime
	new file:   187_semiprime/primes.txt
	new file:   187_semiprime/semiprime.go
	new file:   493Rainbow.py
	new file:   codedTriangle.py
	new file:   coinSum.py
	new file:   eulerCoinSum.py
	new file:   fiboChecker.py
	new file:   oddEven.py
	new file:   p042_words.txt
	new file:   powerfulDigit.py
	new file:   selfPower.py
	new file:   sunday.py
	new file:   symbolCheck.py
This commit is contained in:
2018-04-03 23:39:28 +08:00
parent f429596166
commit dfd3a86429
19 changed files with 1447 additions and 0 deletions
+42
View File
@@ -0,0 +1,42 @@
def checkPass(longPass, combi):
passStr=str(longPass)
countPass=0
for i in range(len(passStr)):
if countPass!=3 and passStr[i]==combi[countPass]:
countPass+=1
if countPass==3:
return True
else:
return False
def checkAll(longPass, combiList):
failure=False
for i in range(len(combiList)):
tempAns=checkPass(longPass, combiList[i])
if not(tempAns):
failure=True
break
return not(failure)
currentIn=" "
combiList=[]
while currentIn!="":
currentIn=input()
if currentIn!="":
combiList.append(currentIn)
longPass=100
while (1):
if longPass%1000==0:
print(longPass)
if checkAll(longPass, combiList):
print("Answer: "+str(longPass))
break
else:
longPass+=1
+31
View File
@@ -0,0 +1,31 @@
def gridToTriangle(x,y):
sumOfTriangle=0
for i in range(x):
for o in range(y):
sumOfTriangle+=(x-i)*(y-o)
return(sumOfTriangle)
solved=False
sizeOfTriangle=1
closestGuy=[0,0]
difference=99999999
answer=0
while not(solved):
sizeOfTriangle+=1
for i in range(sizeOfTriangle):
tempAns=gridToTriangle(i+1,sizeOfTriangle)
tempDiff=abs(2000000-tempAns)
if tempDiff<difference:
closestGuy=[i+1,sizeOfTriangle]
difference=tempDiff
answer=tempAns
if tempDiff>200000000:
solved=True
if sizeOfTriangle%100==0:
print(sizeOfTriangle)
print(closestGuy)
print(answer)
+54
View File
@@ -0,0 +1,54 @@
#! /usr/bin/python3
def findGrad(x1, y1, x2, y2):
top=y2-y1
bot=x2-x1
if bot==0:
return 0, 1
else:
return top/bot, 0
def findRes(x1, y1, x2, y2):
grad=findGrad(x1,y1,x2,y2)
if grad[1]==1:
return x1
else:
return y1-grad[0]*x1
totalCount=0
testFile=open("p102_triangles.txt")
for iLine in testFile:
coordS=[]
coordS=iLine.split(",")
coord=[int(coordS[0]),int(coordS[1]),int(coordS[2]),int(coordS[3]),int(coordS[4]),int(coordS[5])]
countSuc=[0,0,0]
for i in range(3):
for o in range(3):
if o!=i:
last=3-i-o
grad, check=findGrad(coord[i*2], coord[i*2+1], coord[o*2], coord[o*2+1])
intercept=findRes(coord[i*2], coord[i*2+1], coord[o*2], coord[o*2+1])
if check==1:
if 0-intercept>0 and coord[last*2]-intercept>0:
countSuc[i]+=1
elif 0-intercept<0 and coord[last*2]-intercept<0:
countSuc[i]+=1
else:
pseu=coord[last*2+1]-grad*coord[last*2]
if 0-intercept>0 and pseu-intercept>0:
countSuc[i]+=1
elif 0-intercept<0 and pseu-intercept<0:
countSuc[i]+=1
print(coord)
print(countSuc)
if countSuc[0]==2 and countSuc[1]==2 and countSuc[2]==2:
totalCount+=1
print(totalCount)
+1000
View File
File diff suppressed because it is too large Load Diff
Executable
+5
View File
@@ -0,0 +1,5 @@
import math
def checkBouncy(a):
length=math.log(a,10)
BIN
View File
Binary file not shown.
+40
View File
@@ -0,0 +1,40 @@
104777
224777
350430
479958
611986
746796
882407
1020421
1159557
1299762
1441080
1583615
1726977
1870727
2015226
2160606
2307264
2454646
2601918
2750198
2898575
3047798
3196971
3346657
3497892
3648972
3800242
3951203
4103663
4256273
4410366
4562748
4716106
4869917
5023360
5178092
5332561
5487779
5644074
5800173
+56
View File
@@ -0,0 +1,56 @@
package main
import "fmt"
func main() {
THREADCOUNT := 20
primeList:=make([]int,0,4000)
sentCount:=0
recvCount:=0
chani := make(chan int)
var tempi int
for i:=2; i<50000000; i++ {
if sentCount - recvCount < THREADCOUNT {
sentCount+=1
go checkPrime(i, chani)
} else {
emptyChannel := false
for emptyChannel!= true {
select {
case tempi = <-chani:
recvCount+=1
if tempi!=0 {
primeList=append(primeList, tempi)
if len(primeList) % 10000 ==0 {
fmt.Println(i)
}
}
default:
emptyChannel = true
}
}
i-= 1
}
}
fmt.Println(primeList)
}
func checkPrime(i int, chani chan int) bool {
checkCount := 0
for c:=2; c<i/2; c++ {
if i%c == 0 {
checkCount+=1
break
}
}
if checkCount==0 {
chani <- i
return true
} else {
chani <- 0
return false
}
}
Executable
+30
View File
@@ -0,0 +1,30 @@
#! /usr/bin/python3
from decimal import *
import random
total=[]
for i in range(1000):
print(i)
for o in range(10):
balls=[]
bag=[]
for color in range(70):
balls.append(int(random.uniform(0,7)))
for choice in range(10):
choose=int(random.uniform(0,70))
while balls[choose]==-1:
choose=int(random.uniform(0,70))
bag.append(balls[choose])
balls[choose]=-1
allCount=len(set(balls))
total.append(allCount)
a=Decimal(sum(total))
b=Decimal(len(total))
c=Decimal(a/b)
print(getcontext())
print(c)
print(total)
+27
View File
@@ -0,0 +1,27 @@
triSet=set()
for i in range(1,601):
triSet.add(i*(i+1)*0.5)
fobj=open("p042_words.txt")
for line in fobj:
names=line
fobj.close()
print(names)
answer=0
workingcount=0
for i in range(0,len(names)):
if names[i]=="\"" or names[i]==",":
if workingcount!=0:
if workingcount in triSet:
answer=answer+1
workingcount=0
else:
workingcount=workingcount+ord(names[i])-64
print(answer)
Executable
+33
View File
@@ -0,0 +1,33 @@
maxjump=[1,9,9,90,90,80,200,200]
value=[200,100,50,20,10,5,2,1]
working=[0,0,0,0,0,0,0,0]
ans=0
while working[0]<maxjump[0]:
working[7]=working[7]+1
#check if exceed maxjump
for i in range(7,0,-1):
if working[i] > maxjump[i]:
working[i-1]=working[i-1]+1
working[i]=0
#start check if adds to two
check=0
for i in range(0,8):
check=check+working[i]*value[i]
if check==200:
print(working)
ans=ans+1
elif check>200:
for i in range(7,0,-1):
if working[i]!=0:
working[i]=0
working[i-1]=working[i-1]+1
working[7]=-1
break
print("Total Count:",ans+1)
+33
View File
@@ -0,0 +1,33 @@
maxjump=[1,9,9,90,90,80,200,200]
value=[200,100,50,20,10,5,2,1]
working=[0,0,0,0,0,0,0,0]
ans=0
while working[0]<maxjump[0]:
working[7]=working[7]+1
#check if exceed maxjump
for i in range(7,0,-1):
if working[i] > maxjump[i]:
working[i-1]=working[i-1]+1
working[i]=0
#start check if adds to two
check=0
for i in range(0,8):
check=check+working[i]*value[i]
if check==200:
print(working)
ans=ans+1
elif check>200:
for i in range(7,0,-1):
if working[i]!=0:
working[i]=0
working[i-1]=working[i-1]+1
working[7]=-1
break
print("Total Count:",ans+1)
Executable
+24
View File
@@ -0,0 +1,24 @@
def FibonacciChecker(num2):
num=int(num2)
working=1
if num==1:
return "yes"
full=[1,1]
while full[working]<num:
full+=[full[working]+full[working-1]]
if full[working+1]>num:
return "no"
working+=1
if full[working]==num:
return "yes"
return "no"
# keep this function call here
# to see how to enter arguments in Python scroll down
print FibonacciChecker(raw_input())
Executable
+11
View File
@@ -0,0 +1,11 @@
#!/usr/bin/python3
oddEven=50
if oddEven%2==1:
print(str(oddEven)+" is odd!")
elif oddEven%2==0:
print(str(oddEven)+" is even!")
else:
print("This shouldn't run!")
Executable
+1
View File
File diff suppressed because one or more lines are too long
+13
View File
@@ -0,0 +1,13 @@
import math
answer=0
seto=set()
for i in range(2,10):
work=1
while work<=199:
if math.log(math.pow(i,work),10)//1==work-1:
seto.add(math.pow(i,work))
print(math.pow(i,work))
work+=1
print("Answer:",len(seto))
Executable
+8
View File
@@ -0,0 +1,8 @@
import math
ans=0
for i in range(1,1001):
ans=ans+pow(i,i)
magic=str(ans)
print(magic[-10:len(magic)])
Executable
+19
View File
@@ -0,0 +1,19 @@
import datetime
import calendar
ans = 0
for year in range(1901, 2001):
for month in range(1,13):
monthmax=calendar.monthrange(year,month)
monthmax=monthmax[1]
working=datetime.date(year,month,1)
if working.month!=month:
break
if working.weekday() == 6:
print ("Date" , working, ans)
ans=ans+1
print ("Answer:"+str(ans))
Executable
+20
View File
@@ -0,0 +1,20 @@
def SimpleSymbols(ytr):
magic=ytr
if (ord(magic[len(magic)-1]) in range(97,123)) or (ord(magic[len(magic)-1]) in range(65,91)):
return "false"
for i in range(0,len(magic)):
if(ord(magic[i]) in range(97,123)) or (ord(magic[i]) in range(65,91)):
if i==0:
return str(i)+"false"
if ((magic[i-1])!='+') or ((magic[i+1])!='+'):
return "false"
return "true"
# keep this function call here
# to see how to enter arguments in Python scroll down
print(SimpleSymbols(raw_input()))