12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758import mathdef isPrime(n): if(n==1): return False count=0 for i in range(2,(int)(math.sqrt(n))+1): if(n%i==0): count=count+1 if(count==0): return True else: return Falsedef sieve(n): if n
123456789101112131415161718192021222324252627282930313233import matharr=[]arr_result=[]sum_result=0def isChogwasoo(n): sum=1 for i in range(2,(int)(math.sqrt(n))+1): if(n%i==0): temp=(int)(n/i) if(temp!=i): sum=sum+i sum=sum+temp else: sum=sum+temp if(sum>n): return True else: return Falsefor i in range(1,28124): if(isChogwasoo(i)): arr.append(i)for i in range(0,len(arr)): for j in range(0,len(a..
1234567891011121314151617count=0for n in range(1,101): for r in range(0, n+1): n_r=n-r boonza=1 boonmo=1 for i in range(2,n+1): boonza=boonza*i for j in range(2,r+1): boonmo=boonmo*j for k in range(2,n_r+1): boonmo=boonmo*k combination=boonza/boonmo if(combination>1000000): count=count+1print(count)#반환 시간 : 0.1scs 조합을 구하고 백만이 넘어가면 카운트를 셌다.
123456789101112131415161718192021222324252627arr=[]number=1sum=0for i in range(1,502): arr_temp=[] count=((i*2-1)-1)*4 if(count==0): count=1 for j in range(0,count): arr_temp.append(number) number=number+1 arr.append(arr_temp)for i in range(1,502): matrix=i*2-1 if(matrix==1): sum=sum+1 continue index1=matrix-2 index2=index1+matrix-1 index3=index2+matrix-1 index4=index3+matrix-1 sum=sum+arr[i-1][..
1페이지를 모두 풀었다. 프로젝트 오일러를 하면서 느끼는 것이 몇 가지 있는데, Python은 생각보다 정말 간편하고 강력한 언어라는 것이고 ( = 컴퓨터는 Python을 정말 싫어할 것이다) 내가 지금 알고리즘을 공부하고 있는 것인지 CPU를 죽이려고 하는 것인지 모르겠다는 것이다. 몇몇 문제는 결과가 즉시 도출되었지만 몇 분, 몇 십 분, 심지어 몇 시간이 걸려서 결과가 나오는 문제도 여러 있었다. 문제에 시간을 많이 투자하여 더 좋은 알고리즘을 떠올릴 수도 있겠지만 알고리즘 서적 같은 것을 공부하며 이미 누군가가 고안해 낸 알고리즘을 공부하는 것도 나쁘지 않은 시도일 것이다.