{
  "aliases": null,
  "backlinks": null,
  "body": "\n## Statement\n\nLet $n$ be an integer with $n \\ge 2$.\nThere is a [[primitive root|0KM2CJ80G7]] modulo $n$ if and only if $n \\in \\{2, 4, p^k, 2p^k\\}$.\nHere $p$ is an odd prime and $k$ is a positive integer.\n\n## Remarks\n\nEquivalently, the group $(\\mathbb{Z}/n\\mathbb{Z})^\\times$ is cyclic exactly for these $n$.\nThe case $n = p$ is the [[existence of primitive roots modulo a prime|04XGKK8WQW]].\nFor example, there are primitive roots modulo $9$, $18$ and $25$, but not modulo $8$, $12$ or $15$.\n\n## History\n\nCarl Friedrich Gauss gave the first proof.\nHe defined primitive roots in his Disquisitiones Arithmeticae of 1801.\n\n## Explanations\n\n### L1 human\n\nModulo $12$, the residues coprime to $12$ are $1, 5, 7, 11$, and each of them squares to $1$.\nSo no single residue generates all four, and there is no primitive root modulo $12$.\nThe theorem lists exactly the moduli for which a generator exists.\n",
  "commit": "f591989ed15704e9d8755a7a5a6426d73de7a3ae",
  "front": {
    "kind": "statement",
    "msc": [
      "11A07"
    ],
    "name": "Primitive root theorem",
    "role": "theorem",
    "sources": [
      {
        "locator": "Definition",
        "url": "https://en.wikipedia.org/wiki/Primitive_root_modulo_n"
      }
    ],
    "tag": "0E0DNQK22P",
    "uses": [
      "0KM2CJ80G7",
      "04XGKK8WQW"
    ]
  },
  "kind": "statement",
  "link": "https://math2.tamnd.com/node/0E0DNQK22P/",
  "links": [
    {
      "field": "uses",
      "target": "0KM2CJ80G7"
    },
    {
      "field": "uses",
      "target": "04XGKK8WQW"
    }
  ],
  "markdown": "https://math2.tamnd.com/node/0E0DNQK22P.md",
  "msc": [
    "11A07"
  ],
  "name": "Primitive root theorem",
  "prov": null,
  "role": "theorem",
  "source": "https://github.com/tamnd/math2/blob/main/nodes/0E0/0E0DNQK22P.md",
  "status": null,
  "tag": "0E0DNQK22P",
  "uri": "m2://0E0DNQK22P",
  "url": "https://math2.tamnd.com/wiki/primitive-root-theorem/",
  "writing": {
    "tag": "0E0DNQK22P",
    "kind": "statement",
    "level": "W0",
    "next": [
      {
        "what": "an inventory row",
        "note": "the row of the inventory that the node accounts for",
        "have": 0,
        "want": 1
      }
    ]
  }
}
