若是凉夜已成梦

青春里 总有些事情要努力去做 总有些梦想要拼命去追。


  • 运维

  • 前端

  • 编程

  • 随笔

  • hust-oj

1211: Pseudoprime numbers

发表于 2017-10-06   |   分类于 HUSTOJ   |   阅读次数 1,112

题目描述

Fermat's theorem states that for any prime number p and for any integer a > 1, 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 ≤ 1,000,000,000 and 1 < a < p, determine whether or not p is a base-a pseudoprime.
Input contains several test cases followed by a line containing "0 0". Each test case consists of a line containing p and a. For each test case, output "yes" if p is a base-a pseudoprime; otherwise output "no".

输入

暂无

输出

暂无

样例输入

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

样例输出

no
no
yes
no
yes
yes

参考代码

#include<stdio.h>
int pp(int a) 
{
    int i;
    for (i=2; i*i<=a; i++)
            if(a%i==0)return 0;
    return 1;
}
int mod(long x,long n,long m) 
{
    long a,r=1;
    a=x;
    while(n) 
    {
        if(n&1)r=r*x%m;
        x=x*x%m;
        n>>=1;
    }
    return r==a?1:0;
}
int main() 
{
    int a,p;
    while(~scanf("%d%d",&p,&a)&&a||p) 
    {
        if(!pp(p)&&mod(a,p,p))printf("yesn");
        else printf("non");
    }
    return 0;
}

解析

暂无

hustoj

发表评论 取消回复

电子邮件地址不会被公开。 必填项已用*标注

*
*


hoxis wechat
著作权归作者所有
站点更新说明
  • 文章目录
  • 站点概览
若是凉夜已成梦

若是凉夜已成梦

青春里 总有些事情要努力去做 总有些梦想要拼命去追。

1904 日志
6 分类
12 标签
RSS
weibo github twitter facebook

友情链接

Dreams孤独患者 Skip 原站点
© 2017 若是凉夜已成梦
Powered by WordPress | 已运行
Theme By NexT.Mist