21计科程一帆


私信TA

用户名:uq_88617846948

访问量:5249

签 名:

搞哥毛哥在上,俺寻思俺是一个最大最强的技术小子

等  级
排  名 958
经  验 3421
参赛次数 2
文章发表 52
年  龄 19
在职情况 学生
学  校 石河子大学
专  业 计算机科学与技术

  自我简介:

憨憨一个,欢迎大佬指正

解题思路:本体采用的取模公式为a*b%c=((a%c)*(b%c))%c,求前n个质数的积对于50000的模,就相当于每一次与质数相乘后对于50000取模,然后再与下一个质数相乘,再取模,相乘取模的步骤替换为上述公式右边的步骤,这样简化了计算过程的复杂度,python也能跑出来结果

注意事项:注意是前n个质数,而不是前n个数中的质数


参考代码:

def panduan(A):
   if A%2==0:
       return A==2
   if A%3==0:
       return A==3
   if A%5==0:
       return A==5
   if A%7==0:
       return A==7
   for i in range(11,int(A**0.5)+1,2):
       if A%i==0:
           return False
   return True
a=int(input())
b=1
i=2
while a>0:
   if panduan(i):
       b=((b%50000)*(i%50000))%50000
       a-=1
   i+=1
print(b)

 

0.0分

1 人评分

  评论区

  • «
  • »