Pseudoprime numbers

判断伪素数

#include <stdio.h>
#include <math.h>

int quick_mod (int a, int b, int mod)
{
  int ans = 1;
  a = a % mod;
  while(b>0) {
    if(b % 2 == 1) 
    ans = (ans * a) % mod;
    b = b/2;
    a = (a * a) % mod;
  }
  return ans;
}

int isprime (long long p)
{
    long long i;
    for(i=2;i<=sqrt(p);i++)
        if(p % i == 0)
        return 0;
    return 1;
}

int main(int argc, char *argv[])
{
    long long a,p;
    while(scanf("%lld%lld",&p,&a)!=EOF  && (a!=0 || p!=0))
    {
        if (isprime(p))
            printf("no\n");
        else
        {
            if(quick_mod(a,p,p) == a)
            printf("yes\n");
            else
            printf("no\n");
        }
    }
    return 0;
}
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 转载自Matrix大牛一个数是素数(也叫质数),当且仅当它的约数只有两个——1和它本身。规定这两个约数不能相同,因...
    Gitfan阅读 6,350评论 0 1
  • 研究生的时候很喜欢吃零食,有天晚上从实验室回来已经11点多了,躺在宿舍床上却突然特别想吃3+2,特别特别想吃,可是...
    janethaitun喵儿阅读 4,055评论 0 1
  • 情绪 1.情绪的抒发:落泪-哭 2.情绪的表达:发生了什么(为什么哭) 不可取方法: ·压抑情绪 ·否认情绪 ·掩...
    蒹葭胡阅读 1,175评论 0 0

友情链接更多精彩内容