Im trying to use Fermat's little theorem at first assignment but it doesnt work somehow i realy need some help!

primes=[] n = 0 for p in range (2,150000): if n < 1000: if (2**p-2) % p == 0: primes.append(p) n = len (primes) print primes

I tried this formula to start with but i get 7741 as the final prime number why its not right?

This is a cool approach I haven't seen before. I didn't know what Fermat's Little Theorem was, but from http://en.wikipedia.org/wiki/Fermat_primality_test, it appears that you're probably also finding Carmichael numbers: http://en.wikipedia.org/wiki/Carmichael_number

I cant find a solution to exclude them so i will need to find another way i think :/.Thank you for reply!!

bugrakokalp: When I ran your code, I found there are at least 18 different numbers in your list that are not prime. ex. 341 in your list has 11 and 31 as factors, and hence is not prime. I hope this helps.

This code overlooks the fact that Fermat's primality test is only probabilistic-- http://en.wikipedia.org/wiki/Fermat_primality_test

Join our real-time social learning platform and learn together with your friends!