zoukankan      html  css  js  c++  java
  • POJ 3641:Pseudoprime numbers

    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-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^p对p取模等于a,输出yes,其他的输出no。
    直接暴力,不要打表,打表数组开不到1e9,暴力不会超时

    #include<stdio.h>
    #include<math.h>
    #define ll long long
    ll Pow(ll a,ll b)
    {
        ll res=1;
        ll c=b;
        while(b>0)
        {
            if(b&1) res=res*a%c;
            a=a*a%c;
            b>>=1;
        }
        return res;
    }
    ll su(ll n)
    {
        for(ll i=2;i*i<=n;i++)  
        {
            if(n%i==0)
            return 0;
        }
        return 1;  
    }
    int main()
    {
        ll p,a,flag=0;
        while(~scanf("%lld%lld",&p,&a))
        {
            if(a==0&&p==0) break;
            if(su(p)==0) flag+=1;
            if(flag!=0&&Pow(a,p)==a) printf("yes
    ");
            else printf("no
    ");
            flag=0;
        }
        return 0;
    }
  • 相关阅读:
    checkbox全选
    table隔行变色与table单元格根据条件更改字体颜色
    document.ready和window.onload
    JS实现定时弹出广告
    CSS overflow属性与display属性
    OpenCV 安装步骤
    C#类的继承多态(虚方法,隐藏方法、抽象类和抽象方法)
    C#中虚方法,抽象方法和隐藏方法
    C#的重载与重写
    C#中可空类型
  • 原文地址:https://www.cnblogs.com/Friends-A/p/9309070.html
Copyright © 2011-2022 走看看