Pseudoprime numbers POJ - 3641(快速幂+判素数)

题意:

给你两个数,p和a;满足两个条件:
1.p不是素数;
2.apa^{p}ap %p==a;
满足则输出yes,反之输出no。

题目:

Fermat’s theorem states that for any prime number p and for any integer a > 1, apa^{p}ap = a (mod p). That is, if we raise a to the pth power and divide by p, the remainder is a. Some (but not very many) non-prime values of p, known as base-a pseudoprimes, have this property for some a. (And some, known as Carmichael Numbers, are base-a pseudoprimes for all a.)

Given 2 < p ≤ 1000000000 and 1 < a < p, determine whether or not p is a base-a pseudoprime.

Input

Input contains several test cases followed by a line containing “0 0”. Each test case consists of a line containing p and a.

Output

For each test case, output “yes” if p is a base-a pseudoprime; otherwise output “no”.

Sample Input

3 2
10 3
341 2
341 3
1105 2
1105 3
0 0

Sample Output

no
no
yes
no
yes
yes

分析:

这道题一旦题意出来了,其他就是常规操作,第一个条件p为非素数很容易看出,但第二个条件,恕我眼拙,题目给了一个【a > 1, apa^{p}ap = a (mod p). 】的条件,我很容易就想到了费马小定理的xp−1≡1(modp)x^{p-1}\equiv 1(mod p)xp11(modp),然后就掉进坑里爬都爬不起来,看到博客上的题意,心情很崩溃。在这里插入图片描述

AC代码:

#include<stdio.h>
#include<string.h>
#include<algorithm>
using namespace std;
typedef long long ll;
ll p,a;
bool prime(ll x){int k=0;for(int i=2;i*i<=x;i++)if(x%i==0)k++;if(k==0) return true;return false;
}
ll mod(ll a,ll p,ll mod){ll ans=1;a%=mod;while(p){if(p&1) ans=a*ans%mod;p>>=1;a=a*a%mod;}return ans;
}
int main(){while(~scanf("%lld%lld",&p,&a)){if(!p&&!a)break;if(prime(p)){printf("no\n");continue;}if(mod(a,p,p)==a) printf("yes\n");else printf("no\n");}return 0;
}

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

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

相关文章

[Java基础]反射案列

pro.properties文件(该文件与ReflectTest01同处在同一个文件夹)&#xff1b; className domain.Person methodName eat代码如下: package domain;public class Student {public void sleep(){System.out.println("sleep...");} }package domain;public class Per…

[推荐]大量 Blazor 学习资源(三)

大量 Blazor 学习资源系列文章&#xff1a;[推荐]大量 Blazor 学习资源&#xff08;一&#xff09;[推荐]大量 Blazor 学习资源&#xff08;二&#xff09;这次主要内容有 Blazor 相关视频&#xff0c;因为本身视频是英文的&#xff0c;所以就保持原样了&#xff0c;描述没有翻…

The Water Bowls POJ - 3185(开关问题+暴力)

题意&#xff1a; 给20个水碗。朝上为‘0’或朝下为‘1’&#xff0c;每次操作使三个碗翻转&#xff0c;问使所有20个水碗都朝上&#xff0c;至少翻多少次&#xff1f; 题目&#xff1a; The cows have a line of 20 water bowls from which they drink. The bowls can be e…

基于 abp vNext 和 .NET Core 开发博客项目 - 定时任务最佳实战(二)

上一篇使用HtmlAgilityPack抓取壁纸数据成功将图片存入数据库&#xff0c;本篇继续来完成一个全网各大平台的热点新闻数据的抓取。同样的&#xff0c;可以先预览一下我个人博客中的成品&#xff1a;https://meowv.com/hot ????????????&#xff0c;和抓取壁纸的套路…

Linear world POJ - 2674(弹性碰撞+技巧)

题意&#xff1a; 给你n个居民的起始位置&#xff0c;各自在长度为l的平台&#xff0c;以同样的速度向左或向右走&#xff0c;当碰见时往相反方向走&#xff0c;问最后掉下去的居民花费的时间以及姓名。 题目&#xff1a; The Disc, being flat, has no real horizon. Any a…

TechEmpower Web 框架性能第19轮测试结果正式发布,ASP.NET Core在主流框架中拔得头筹...

TechEmpower第19轮编程语言框架性能排行榜2020年5月28日正式发布,详见官方博客&#xff1a;https://www.techempower.com/blog/2020/05/28/framework-benchmarks-round-19/&#xff0c;TechEmpower基准测试有许多场景&#xff08;也称为测试类型&#xff09;&#xff0c;此次评…

Calendar Game POJ - 1082(关于日历的博弈问题)

题意&#xff1a; 两个人轮流玩游戏&#xff0c;每个人可以把日期进行转移&#xff0c;转移规则&#xff1a; 1.可以转移到当前日期的下一天。 2可以转移到下个月的这一天。&#xff08;但是如果下个月没有这一天就不能进行第二种转移&#xff09; 3.如果A恰好移动到2001.11.4…

[Java基础]JDK内置注解

示例代码如下: package annotation;SuppressWarnings("all") public class AnnoDemo2 {Overridepublic String toString(){return super.toString();}Deprecatedpublic void show(){//有缺陷}public void show1(){//替代show方法}public void demo(){show();}}

学了这么多年精益思想,居然不知道还有第八种浪费 | IDCF

价值和浪费“我是彻底的现场主义者。与其在领导办公室内冥思苦想&#xff0c;倒不如到生产现场的各个角落&#xff0c;直接获得第一手的生产信息和感受直接的刺激。”——大野耐一&#xff0c;丰田生产方式之父大野耐一提倡直接去现场工作&#xff0c;在那里才能看到价值与浪费…

41 sysfs 文件系统

前言 在 linux 中常见的文件系统 有很多, 如下 基于磁盘的文件系统, ext2, ext3, ext4, xfs, btrfs, jfs, ntfs 内存文件系统, procfs, sysfs, tmpfs, squashfs, debugfs 闪存文件系统, ubifs, jffs2, yaffs 文件系统这一套体系在 linux 有一层 vfs 抽象, 用户程序不用…

A Greeting from Qinhuangdao Gym - 102769A 2020ccpc秦皇岛分站赛

题意&#xff1a; 给你n个红球和m个蓝色球。然后以相等的概率随机选择了其中两个。选择两个红球的概率是多少&#xff1f; 题目&#xff1a; Welcome to the CCPC Qinhuangdao Site! Qinhuangdao is a beautiful coastal city full of charm, integrating historical herit…

Gartner:6个容器和Kubernetes策略的最佳实用技巧

导语采用容器和Kubernetes要求整个企业保持一致&#xff0c;不了解这些前期现实会导致一些非常严峻的后果。正文Gartner估计&#xff0c;到2022年&#xff0c;将有75&#xff05;的组织在生产中运行容器化应用程序。毫无疑问&#xff0c;Kubernetes已成为组织容器的流行方法。通…

[JavaWeb-MySQL]约束(非空约束,唯一约束,主键约束,外键约束_级联操作)

约束 * 概念&#xff1a; 对表中的数据进行限定&#xff0c;保证数据的正确性、有效性和完整性。 * 分类&#xff1a;1. 主键约束&#xff1a;primary key2. 非空约束&#xff1a;not null3. 唯一约束&#xff1a;unique4. 外键约束&#xff1a;foreign key* 非空约束&#x…

Friendly Group Gym - 102769F 2020(并查集)ccpc秦皇岛分站赛

题意&#xff1a; n个学生要组成一个小组参加会议&#xff08;可以不参加&#xff09;&#xff0c; 1.对于每两个朋友&#xff08;x &#xff0c;y)&#xff0c;如果他们俩都参加会议&#xff0c;该小组的友好价值将会增加 1&#xff1b;如果其中只有一位参加会议&#xff0c;…

测试人员未来的3条出路

大家好&#xff0c;我是Z哥。前两天有个做测试的小伙伴加我微信问我测试相关的一些事情。她自己是从学习毕业就开始进入到互联网行业做测试的&#xff0c;到现在三年工作经验。她现在都不太敢跳槽&#xff0c;因为觉得自己没有什么核心竞争力&#xff0c;平常就是点点鼠标&…

[JavaWeb-MySQL]DQL_查询表中记录,语句

DQL&#xff1a;查询表中的记录 * select * from 表名;1. 语法&#xff1a;select字段列表from表名列表where条件列表group by分组字段having分组之后的条件order by排序limit分页限定2. 基础查询1. 多个字段的查询select 字段名1&#xff0c;字段名2... from 表名&#xff1b…

团体程序设计天梯赛-练习集L1-025 正整数A+B (15分)(getline输入)

题目&#xff1a; 题的目标很简单&#xff0c;就是求两个正整数A和B的和&#xff0c;其中A和B都在区间[1,1000]。稍微有点麻烦的是&#xff0c;输入并不保证是两个正整数。 输入格式&#xff1a; 输入在一行给出A和B&#xff0c;其间以空格分开。问题是A和B不一定是满足要求…