zoukankan      html  css  js  c++  java
  • hdu 1905 幂成

    题意://给一个p 和一个a,如果这个
    //p 本身就是一个素数,就输出no,如果不是素数,那么计算 ( a ^ p) % p 如果结果等于a 那么输出yes 否则输出no

    zsd:用__int64的时候一定要注意__int64与别的数转化的时候会出错误 所以一定要都是__int64位

    //给一个p 和一个a,如果这个
    //p 本身就是一个素数,就输出no,如果不是素数,那么计算 ( a ^ p) % p 如果结果等于a 那么输出yes 否则输出no
    #include<iostream>
    #include<cmath>
    using namespace std;
    bool isprime(int x)
    {
    	for(int i=2;i<=(int)sqrt(x*1.0)+1;i++)
    		if(x%i==0)
    			return false;
    	return  true;
    }
    bool fun(__int64 x,__int64 e,__int64 p)
    {
    	__int64 a=x;
    	__int64 base=x;
    	__int64 sum=1;
    	while(e>0)
    	{
    		if(e&1) sum=(sum*base)%p;
    		e/=2;
    		base=(base*base)%p;
    	}
    	if(sum==a)
    		return true;
    	return false;
    }
    int main()
    {
    	__int64 p,a;
    	while(scanf("%I64d%I64d",&p,&a)!=EOF)
    	{
    		if(p==a&&p==0) break;
    		if(isprime(p)) printf("no
    ");
    		else
    			if(fun(a,p,p))
    				printf("yes
    ");
    			else printf("no
    ");
    	}
    	return 0;
    }
    
  • 相关阅读:
    每天更新股票日数据
    爬取赶集网类似数据的几个小技巧
    爬取赶集网二手物品下所有物品的信息
    web.xml常用元素
    web.xml中JSP配置及 EL表达式
    JSP 隐藏对象
    第四章 JSP语法
    1.JSP 简介及工作原理
    js闭包
    面试心经之题目二
  • 原文地址:https://www.cnblogs.com/zhangdashuai/p/3700908.html
Copyright © 2011-2022 走看看