需要更好地解释数学/编程问题?

时间:2011-01-08 21:38:03

标签: math

问题是:

  

对于素数p,小于或等于它的联合素数集由{1,2,3,4,... p-1}给出。

     

我们定义f(x,p)0< x<当且仅当从1到p-1的所有数字都可以用模p算术写成x的幂时,p = 1。

     

设n是最大的12位素数。找到所有整数j小于n的乘积,使得f(j,n)= 1,以模数运算

有人能给我一个更好的解释吗?

3 个答案:

答案 0 :(得分:2)

我会假设您无法理解问题要求您做什么。

首先,必须定义函数f。当且仅当从1到p-1的所有数字都可以写成模数运算中的x的幂时,它需要返回1“。也就是说,在伪代码中:

for i from 1 to p-1
   if (for some n, (x^n)%p != i%p) return 0
end for
return 1

如果某些i中的任何一个x^n无法写为n,那么我们就不会返回1.如果它们都有效,那么我们返回1。

最后,我们正在寻找所有这些j的产品。所以,再次,在伪代码中:

let p = 1
for j from 1 to n
    if (f(j,n)==1)  p = p*j
end for
return p%n

如果j f(j,n)1,我们只会按照要求加倍{{1}}。那有意义吗?你不明白这个问题的特定部分吗?

答案 1 :(得分:1)

尝试在math.stackexchange.com

上询问此问题

答案 2 :(得分:1)

用于定义的非常糟糕的伪代码 - 这不是正确的代码

function answerToQuestion()
  answer = 1
  n = getLargest12DigitPrime()
  for j = 1 to n-1
      if (f(j,n) == 1)
         answer *= j

  return answer
end function

function f(j, n)
  for x=1 to n-1
     if not canBeWrittenAsPowerOfJModuloN(x, j, n)
         return 0
  return 1
end function