-3

I'm beginner in python programming and got stumpled on a Basic Question: print the number of primes up to a given number.

For example the amount of primes before the number 100.

why my Code is not working? or what is wrong with my logic?

def count_prime(num):
    newnumber = 0
    for x in num:
        if x%2 == 0:
            newnumber = newnumber + 1
    print(newnumber)

count_prime(100)
Antoine Bolvy
  • 3,281
  • 1
  • 23
  • 39

2 Answers2

0

One very simple way (i.e. computationally slow) to test if a number is prime is to simply check if it can be divided by any other number.

def is_prime(n):
    # If n is 0 or 1, it is not prime
    if n <= 1:
        return False
    # Check every number between 2 and n-1
    for i in range(2, n):
        # If n is divisible by i, then the remainder will be zero
        if n % i == 0:
            return False
    # Since n wasn't divisible by any other number, it must be prime
    return True

To print all of the primes, you can then simply check each number.

for i in range(num):
    if is_prime(i):
        print(i)

This method will be very slow for large values of num. To see some much faster methods for checking the primality of a number you can have a look at this question.

Chris Mueller
  • 5,156
  • 2
  • 25
  • 32
0
num = int(input("Enter a number: "))  

if num > 1:  
   for i in range(2,num):  
   if (num % i) == 0:  
       print(num,"is not a prime number")  
       print(i,"times",num//i,"is",num)  
       break  
   else:  
       print(num,"is a prime number")  

else:  
   print(num,"is not a prime number")  
Yash Shukla
  • 131
  • 6