[关闭]
@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. 分析所得到的新数组与之前的数组有什么关系?

代码如下:

  1. import cmath
  2. import random
  3. #判断素数
  4. def is_Prime(a):
  5. if a==2:
  6. return True
  7. i=2
  8. while(i<a**0.5):
  9. if a%i==0:
  10. return False
  11. i=i+1
  12. return True
  13. #随机生成素数
  14. def random_Prime():
  15. while(1):
  16. #由于取范围过大的数据时,本计算机cup接近爆炸,故只取1-100000
  17. a=random.randint(1,100000)
  18. if(is_Prime(a)==True):
  19. break
  20. return a
  21. #生成1~p-1的数组
  22. def array_prime(p):
  23. l=list(range(1,p))
  24. return l
  25. def print_prime(l):
  26. print(l)
  27. def a_prime(p):
  28. a=random.randint(1,p)
  29. list1=[]
  30. for i in range(p):
  31. list1.append(a*i%p)
  32. return list1
  33. print(is_Prime(13))
  34. print(random_Prime())
  35. print_prime(array_prime(13))
  36. print_prime(a_prime(13))

分析:

1.新数组首项为0;
2.新数组元素除首项为0外,其余元素是旧数组元素的重排列。
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注