2016-07-01 16 views
1

10^7と10^8の間で生成された乱数がプライムであるかどうかをチェックする宿題問題について、Sageにコードを書く必要があります。すべての既知の素数は10^4以下です。私はこの前に警告としてSageでプログラミングしていません。これは私がこれまで持っていたものです。私がやりたいと思ってる何Sage(Python)数学プログラミング、プライマリをチェックするアルゴリズムを書く

# This creates a function to create a random number between two numbers 

def random_between(j,k): 
    a=int(random()*(k-j+1))+j 
    return a 

# Testing that the function works, which it does, though I don't know how 
# to assign a variable to it like x=random_between(10^7,10^8) 

random_between(10^7,10^8) 

# The list of primes less than 10^4 is given by 

list_of_primes = prime_range(1,10^4) 

# Want to write a function to check if prime 
def check_if_prime(n): 
    for n in list_of_primes: 
     if n % random_between(10^7,10^8)==0: 
      print 'number is prime' 
     else 
      print 'number is not prime' 

%コマンドを使用してrandom_betweenから生成list_of_primesデバイドの数字は乱数かどうかを確認してからnumber x is a primeというか、それがないということを印刷使用することです。

私は、コマンドPrimes()が数字が素数であるかどうかをチェックすることは知っていますが、私たちは具体的にはこの「素朴な」チェック素数を行うことになっています。 誰かがこれで私を助けることができたら、私は本当にそれを感謝します。

+0

'N <10^4'と' 10^7を考える<= random_x <10^8'その後、 'N%のrandom_x'は常に' N AChampion

答えて

0

あなたはcheck_if_primeの機能を使用できます。私は以下に書き直しました。

def check_if_prime(): # there's no parameter for this method since we're checking against the global var list_of_primes 
    for n in list_of_primes: 
     if random_between(10^7,10^8) % n == 0: # if a random number/a prime number has no remainder, the random number is not prime 
      print 'number is not prime' 
      return # we're done, we know it's not prime 
    print 'number is prime' # we made it through all of our tests, the number might be prime 
関連する問題