@Lin--
2018-10-04T10:58:48.000000Z
字数 763
阅读 405
计算机数学
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 cmathimport random#判断素数def is_Prime(a):if a==2:return Truei=2while(i<a**0.5):if a%i==0:return Falsei=i+1return True#随机生成素数def random_Prime():while(1):#由于取范围过大的数据时,本计算机cup接近爆炸,故只取1-100000a=random.randint(1,100000)if(is_Prime(a)==True):breakreturn a#生成1~p-1的数组def array_prime(p):l=list(range(1,p))return ldef 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 list1print(is_Prime(13))print(random_Prime())print_prime(array_prime(13))print_prime(a_prime(13))
1.新数组首项为0;
2.新数组元素除首项为0外,其余元素是旧数组元素的重排列。