Codeforces Round #174 (Div. 2) Cows and Primitive Roots(数论)

Cows and Primitive Roots

time limit per test
2 seconds
memory limit per test
256 megabytes
input
standard input
output
standard output

The cows have just learned what a primitive root is! Given a prime p, a primitive root is an integer x (1 ≤ x < p) such that none of integers x - 1, x2 - 1, ..., xp - 2 - 1 are divisible by p, but xp - 1 - 1 is.

Unfortunately, computing primitive roots can be time consuming, so the cows need your help. Given a prime p, help the cows find the number of primitive roots .

Input

The input contains a single line containing an integer p (2 ≤ p < 2000). It is guaranteed that p is a prime.

Output

Output on a single line the number of primitive roots .

Sample test(s)
Input
3
Output
1
Input
5
Output
2
Note

The only primitive root is 2.

The primitive roots are 2 and 3.

可使用蛮力法,但需要注意两点:

1、不要每次都用pow计算x的n次方,由于x^n=x*X^(n-1),设一个变量m储存x^(n-1),那么x^n=m*x.

2、如果直接算出m,就算用64位也会溢出,利用性质(a-b)%p=(a%p-b%p)%p,则只需保留m%p的值。

AC Code:

 1 #include <iostream>
 2 #include <fstream>
 3 #include <string>
 4 #include <set>
 5 #include <map>
 6 #include <vector>
 7 #include <stack>
 8 #include <queue>
 9 #include <cmath>
10 #include <cstdio>
11 #include <cstring>
12 #include <algorithm>
13 #include <utility>
14 using namespace std;
15 #define ll long long
16 #define cti const int
17 #define ctll const long long
18 #define dg(i) cout << '*' << i << endl;
19 
20 int main()
21 {
22     ll p, x;
23     ll m;
24     int ans;
25     bool ok;
26     while(scanf("%I64d", &p) != EOF)
27     {
28         ans = 0;
29         for(x = 1; x < p; x++)
30         {
31             m = 1;
32             ok = true;
33             for(int i = 1; i < p - 1; i++)
34             {
35                 m *= x;
36                 m %= p;
37                 if((m - 1) % p == 0)
38                 {
39                     ok = false;
40                     break;
41                 }
42             }
43             if(ok && ((m * x) - 1) % p == 0) ans++;
44         }
45         printf("%d\n", ans);
46     }
47     return 0;
48 }

 

转载于:https://www.cnblogs.com/cszlg/archive/2013/03/22/2975423.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/295739.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Android之SlidingMenu使用和总结

SlidingMenu使用和总结 我们经常看到手机QQ和酷狗主界面里面都有侧滑菜单的使用,今天我们在这里介绍怎么使用SlidingMenu的使用和总结,SlingMenu是开源的,不说了多了,先爆照 第一步:下源码 // 下载 ZXing 项目源码 https://github.com/jfeinstein10/SlidingMenu …

oracle10g异常日志查看

oracle10g异常日志查看 警告日志&#xff1a;\oracle\product\10.2.0\db_1\admin\orcl\bdump\alert_orcl.log 监听日志&#xff1a;\oracle\product\10.2.0\db_1\NETWORK\log\listener.log转载于:https://www.cnblogs.com/wanghonghu/archive/2012/04/18/2455651.html

jquery如何实现ajax技术,使用JavaScript和jQuery简单实现Ajax技术(示例代码)

Ajax的定义Ajax被认为是(Asynchronous JavaScript and XML的缩写)。 允许浏览器与服务器通信而无须刷新当前页面的技术都被叫做Ajax。Ajax的工作原理Ajax的核心是JavaScript对象XmlHttpRequest。XmlHttpRequest使您可以使用JavaScript向服务器提出请求并处理响应&#xff0c;而…

值得永久收藏的 C# 设计模式套路(一)

设计模式知道&#xff0c;套路是个啥&#xff1f;关于设计模式的说法&#xff0c;网上一搜一大堆&#xff0c;咱就不再去说了。我的理解&#xff0c;设计模式就是很多NB的大佬们总结出来的&#xff0c;用来处理特定情况的标准解决方案。那既然是标准方案&#xff0c;就一定会有…

如何让你的碎片化时间更有价值?

全世界只有3.14 % 的人关注了爆炸吧知识不知道大家有没有发现&#xff0c;我们开始变得浮躁起来了&#xff0c;我们不再愿意花大量时间去做成一件事情&#xff0c;也无法下定决心&#xff0c;改变自己糟糕的现状。却羡慕着手机屏幕里各种各样的成功人士&#xff0c;活出了自己最…

窥探Swift编程之强大的Switch

之前初识Swift中的Switch语句时&#xff0c;真的是让人眼前一亮&#xff0c;Swift中Switch语句有好多特有而且特好用的功能。说到Switch, 只要是写过程序的小伙伴对Switch并不陌生。其在程序中的出镜率还是比较高档。Switch属于程序的分支语句&#xff0c;Switch的功能便于处理…

安富莱v6开发板网口通讯_安富莱嵌入式周报第170期:2020.07.202020.07.26

说明&#xff1a;谢谢大家的关注&#xff0c;继续为大家盘点上周精彩内容。1、沁恒推出带USB3.0&#xff0c;千兆以太网&#xff0c;光纤接口的RISC内核单片机CH569 CH569/565 微控制器使用 RISC-V3A 内核&#xff0c; 支持 RISC-V 指令的 IMAC 子集。片上集成超高速USB3.0主…

postfix搭建及配置

一&#xff0e; 电子邮件系统概述1. 邮件系统角色MUA&#xff08;邮件用户代理&#xff09;、MTA&#xff08;邮件传输代理&#xff09;、MDA&#xff08;邮件分发代理&#xff09;2. 邮件应用协议SMTP&#xff0c;简单邮件传输协议&#xff0c;TCP 25端口POP3&…

连续子数组的最大和

有一个整数数组&#xff0c;求出连续子数组的和的最大值。有一个首尾相连的整数数组&#xff0c;求出连续子数组的和的最大值。在数组中&#xff0c;数字减去它右边的数字得到一个数对之差。求所有数对之差的最大值。1、思路&#xff1a; 动态规划思路&#xff1a;用函数f(i)表…

Android之常用开发框架

Android之常用开发框架 1、Rajawali 介绍: 安卓的OpenGL ES 2.0/3.0 引擎。可以用于制作普通应用或者动态壁纸,当然也可以用于制作游戏。 项目地址: https://github.com/Rajawali/Rajawali 2、RxAndroid 介绍: RxAndroid是RxJava的一个针对Android平台的扩展。它包含了一些…

servlet需要和ajax,如何使用Servlet和Ajax?

我是Web应用程序和Servlet的新手&#xff0c;我有以下问题&#xff1a;每当我在Servlet中打印某些内容并由网络浏览器调用它时&#xff0c;它将返回一个包含该文本的新页面。 有没有一种方法可以使用Ajax在当前页面中打印文本&#xff1f;#1楼我将向您展示servlet的整个示例以及…

如何阻止给 一个程序 开启多个实例 ?

咨询区 C. Dragon 76&#xff1a;在 .NET 中是否有比较好的方法可以阻止一个 application 被同时开启了多个实例&#xff1f;如果没有好的办法&#xff0c;那么只能退其次&#xff0c;给每个 application 配一些操作规范。回答区 ImJustPondering&#xff1a;我总结有两种解法。…

WPF中设置了WindowStyle=None后,窗口仍然有边框的解决方法

1. 设置了窗体的WindowStyle"None",窗口还是右边框&#xff0c;如下图&#xff1a; 2. 这是因为窗体默认是可以改变大小的&#xff0c;所以需要修改ResizeMode的值 ResizeMode"NoResize", 这样设置后&#xff0c;上图中的边框就没有了

两度破译“白宫密码”,让美国政府部门崩溃,却称自己是抱娃敲代码的普通妈妈

全世界只有3.14 % 的人关注了爆炸吧知识抱娃敲代码称成功是幸运而已今天我们来点正经的&#xff0c;来跟大家分享一位乘风破浪的姐姐--王小云教授。自踏入2020年以来&#xff0c;山东大学网络空间安全学院&#xff08;研究院&#xff09;院长&#xff0c;双聘院士、讲席教授王小…

github java开源项目经验_10月份Github上最热门的Java开源项目

10 月份 GitHub 上最热门的Java开源项目排行已经出炉啦&#xff0c;在本月的名单中&#xff0c;实战项目类居多&#xff0c;当然也有像JavaGuide这样学习指南类项目&#xff0c;下面就是本月上榜的10个开源项目&#xff1a;1、Java&#xff08;Star 18468&#xff09;https://g…

转载:保护模式1

实模式与保护模式 摘自ITWIKI,为我和还没搞明白真实模式保护模式的XDJM们 真实模式 Intel 8086和8088有14个16位缓存器。其中四个&#xff08;AX, BX, CX, DX&#xff09;是通用目的&#xff08;尽管每个缓存器有额外的目的&#xff1b;举个例子&#xff1a;CX可以被用来当作lo…

浙江移动无线dns服务器地址,浙江移动4g的dns服务器地址

浙江移动4g的dns服务器地址 内容精选换一换当创建文件系统后&#xff0c;您需要使用云服务器来挂载该文件系统&#xff0c;以实现多个云服务器共享使用文件系统的目的。本章节以Windows 2012版本操作系统为例进行NFS文件系统挂载&#xff0c;其他版本请参考以下主要步骤根据实际…

Android之给gridview的单元格加上分割线

有时候需要给gridview加上分割线&#xff0c;没有现成的解决方案&#xff0c;这里写好一个可以直接用的自定义gridview&#xff0c;就叫做LineGridView吧。先上图&#xff0c;zaker客户端第三方分享的gridview样式&#xff1a; 可以看到靠边的格子都是半封闭的&#xff0c;要实…

Azure Machine Learning - 如何使用 GPT-4 Turbo with Vision

介绍如何在Azure中使用GPT-4 Turbo with Vision 关注TechLead&#xff0c;分享AI全维度知识。作者拥有10年互联网服务架构、AI产品研发经验、团队管理经验&#xff0c;同济本复旦硕&#xff0c;复旦机器人智能实验室成员&#xff0c;阿里云认证的资深架构师&#xff0c;项目管理…

系统命名与 SQL 命名之争 - 第 1 部分

创建数据库对象的命名规范 创建数据库对象时&#xff0c;开发人员可以选择一种命名方法&#xff0c;可以选择遵循传统 IBM i 行为的系统命名模式 (*SYS)&#xff0c;也可以选择遵循SQL 标准规则的 SQL 命名规范 (*SQL)。 DB2 for i 与其他数据库管理系统 (DBMS) 之间的主要差别…