zoukankan      html  css  js  c++  java
  • poj 3641 Pseudoprime numbers 快速幂+素数判定 模板题

    Pseudoprime numbers
    Time Limit: 1000MS
    Memory Limit: 65536K
    Total Submissions: 7954
    Accepted: 3305

    Description

    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-apseudoprimes, 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 anda.

    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
    <span style="font-size:32px;">#include<iostream>
    #include<cstdio>
    #include<cstring>
    #include<cmath>
    using namespace std;
    long long a,p;
    long long power(long long a,long long p)
    {
         long long ret=1,temp=p;
         while(temp)
         {
              if(temp&1)
                 ret=(ret*a)%p;
              a=(a*a)%p;
              temp>>=1;
         }
         return ret%p;
    }
    bool prime(long long m)
    {
        for(long long i=2;i*i<=m;i++)
            if(m%i==0)
              return false;
        return true;
    }
    int main()
    {
        long long a,p;
        while(~scanf("%lld %lld",&p,&a))
        {
            if(a==0&&p==0)  return 0;
            if(power(a,p)==a%p&&!prime(p))
                printf("yes
    ");
            else
                printf("no
    ");
        }
        return 0;
    }
    </span>


  • 相关阅读:
    DAS,NAS,SAN在数据库存储上的应用
    ASP.NET4.5Web API及非同步程序开发系列3
    WCFRESTFul服务搭建及实现增删改查
    Workflow:自定义工作流 之 模型选择
    结构变量作为方法的参数调用
    C语言复习笔记-17种小算法-解决实际问题
    构建RESTful风格的WCF服务
    进程状态转换、CPU调度算法
    Excel 开发概述
    jQuery 1.10.2 and 2.0.3 Released
  • 原文地址:https://www.cnblogs.com/smilesundream/p/6642544.html
Copyright © 2011-2022 走看看