Skip to main content

Get the list of all the files and directories

Function Use: To print all the directories in a folder/sub-folder or directory import os def get_list_or_dir(local_dir):     for dir_or_file in os.listdir(local_dir):         if os.path.isdir(dir_or_file):             path = os.path.join(local_dir, dir_or_file)             print(dir_or_file, 'This is a directory')             get_list_or_dir(path)         else:             print(dir_or_file) Path = os.getcwd() or define the path from where you need a file Function Call: get_list_or_dir(path)

What is the largest prime factor of the number 600851475143 ?

I have got this difficult programming ask from Project Euler. Before jumping into details we should know what is the prime number and prime number factors..

Prime Number:  

The number which is divisible only by itself and 1.

Example: 1, 3, 5, 11, 13 and so on. These are prime number.

Is 9 a prime number? No, 9 is divisible by 1, 3, 9. So, it can't be a prime number.

A program to print prime number till 100.

>>> n =100
>>> i = 2
>>> for i in range(2, n+1):
               count = 0


               for j in range(2, i+1):       
                     if i%j == 0:
                     count += 1


                if count == 1:
                print(i, end=" ") 


2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97.

What is the prime factor?

The factor of any number which is a prime number then it is a prime factor.

Example: what is the prime factor of 100: The prime factor of 100 is  (2,2,5,5); where 2 and 5 is a prime number? How did we came to the prime factor.

We can start from 2 to the n(for which we have to find  prime factor)

  • 100/2  = 50  (2 is a prime factor of 100)
  • 50/2 = 25  (2 is a prime factor of 100)
  • 25/5 = 5  (Here 25 is not divisible by 2, then we will go to the next prime number which is 3. Again 25  is not divisible by  3, then we will go to the next prime number which is 5. Now, 25 is divisible by 5.)
  • 5/5 = 1  (5 is a prime factor and we will stop here, as we can't go further then 1)
 Prime factor of 100 is (2,2,5,5). Largest prime factor of 100 is 5 and smallest prime factor is 2.

Now, come to the original question!  

What is the largest prime factor of the number 600851475143 ? 

>>> n = 600851475143
>>>  a= []
>>>  i = 2
>>>  while i < 100001: 
                  if n%i == 0: 
                          n = n/i 
                          a.append(i) 
                          i = 2 
                  else: i += 1 
>>>   a[len(a) -1] 

6857

Here the prime factor of 600851475143 is ( 71, 839, 1471, 6857). Here i have used an list to keep these and the last value of the list of largest prime factor.
 

Keep reading Python an hour a day to learn simple Python tricks, tips and program.

Comments

Popular posts from this blog

Project Euler Problem 13

This problem seems difficult at first, but once you understand it; this will prove out to be easiest of all the problems in Project Euler: I guess you will have seen the problem till now, if not then visit Project Euler 13 else scroll down for this problem. The Solution: The number mentions in the problem is of 100 line and in one line there are 50 numbers. So basically you just have to add all the 100 numbers (each number consist of 50 digits).  you will need str.split() function to do the job. num = "37107287533902102798797998220837590246510135740250 \n \ 46376937677490009712648124896970078050417018260538 \n \ 74324986199524741059474233309513058123726617309629 \n \ 91942213363574161572522430563301811072406154908250 \n \ 23067588207539346171171980310421047513778063246676 \n \ 89261670696623633820136378418383684178734361726757 \n \ 28112879812849979408065481931592621691275889832738 \n \ 44274228917432520321923589422876796487670272189318 \n \ 474514457360013064...

Project Euler 14:Longest Collatz sequence

The Problem: The following iterative sequence is defined for the set of positive integers: n → n /2 ( n is even) n → 3 n + 1 ( n is odd) Using the rule above and starting with 13, we generate the following sequence: 13 → 40 → 20 → 10 → 5 → 16 → 8 → 4 → 2 → 1   It can be seen that this sequence (starting at 13 and finishing at 1) contains 10 terms. Although it has not been proved yet (Collatz Problem), it is thought that all starting numbers finish at 1. Which starting number, under one million, produces the longest chain? NOTE: Once the chain starts the terms are allowed to go above one million. The Solution: We can divide the solution in 3 task. To form the chain of sequence. To feed the data to the first function. Third will be sort the values.  To form the chain of sequence: def chain(n):        a = []  # will hold the sequence     a.append(n)     while n...

Project Euler 11: What is the greatest product of four adjacent numbers in the same direction (up, down, left, right, or diagonally) in the 20×20 grid?

You guys can get this programming ask from Project Euler. This  is the 11th question  of this series. The solution of this question needs you to be good in matrix. You can find the solution below. The Solution: You have to find the greatest product of the four adjacent number and the number can should be in the same direction. So basically, if we start by first number of the series 08; then we can find only 3 adjacent number in the same direction and that will be: 1>  08 02 22 97(going in positive direction) 2>  08 49 81 52 (Going in down direction) 3> 08 49 31 23 (Going in positive diagonal direction) but a number can have maximum 8 products in the same direction; for better understanding we have marked it in the red and you can also check the below image for better understanding. 08 02 22 97 38 15 00 40 00 75 04 05 07 78 52 12 50 77 91 08 49 49 99 40 17 81 18 57 60 87 17 40 98 43 69 48 04 56 62 00 81 49 31 73 55 79 14 29 93 71 40 67...