@Lin--
2018-10-04T10:58:48.000000Z
字数 763
阅读 289
计算机数学
A. 写一个函数:输入一个数,判断它是否素数。
B. 写一个函数:随时生成一个素数。
C. 给定一个素数p,产生1到p-1之间的数,并存在一个数组中。
D. 写一个函数,可以输出显示这个数组中的值。
E. 随机选一个小于p大于1的数a,用a去乘数组中的数并用p取模数:a*i % p,for all i in[0..p-1]。把得到的数存在另一个数组,并输出显示其中值。
D. 分析所得到的新数组与之前的数组有什么关系?
import cmath
import random
#判断素数
def is_Prime(a):
if a==2:
return True
i=2
while(i<a**0.5):
if a%i==0:
return False
i=i+1
return True
#随机生成素数
def random_Prime():
while(1):
#由于取范围过大的数据时,本计算机cup接近爆炸,故只取1-100000
a=random.randint(1,100000)
if(is_Prime(a)==True):
break
return a
#生成1~p-1的数组
def array_prime(p):
l=list(range(1,p))
return l
def print_prime(l):
print(l)
def a_prime(p):
a=random.randint(1,p)
list1=[]
for i in range(p):
list1.append(a*i%p)
return list1
print(is_Prime(13))
print(random_Prime())
print_prime(array_prime(13))
print_prime(a_prime(13))
1.新数组首项为0;
2.新数组元素除首项为0外,其余元素是旧数组元素的重排列。