5 条题解

  • 0
    @ 2025-3-5 17:31:30

    快速幂模版

    #include<bits/stdc++.h>
    using namespace std;
    const int N=1e5+5,INF=0x3f3f3f3f;
    typedef long long LL;
    LL a,b,p; 
    LL power(){
    	LL ans=1;
    	while(b){
    		if(b&1)ans = ans*a%p;
    		b>>=1;
    		a = a*a%p;
    	}
    	return ans%p;
    }
    int main()
    {
    	cin>>a>>b>>p;
    	cout<<power();
    	return 0;
    }
    
    
    • 0
      @ 2025-1-25 11:33:34
      ```
      #include<iostream>
      using namespace std;
      
      int main()
      {
          long long a, b, p, res = 1;
          scanf ("% ld % ld % ld", &a, &b, &p);
          while (b != 0)
         {
              if (b & 1)
              {
                  res = res * a % p;
              }
              a = a * a % p;
              b >>= 1;
          }
          printf ("% ld \ n", res % p);
          return 0;
      }
      ```
      
      • 0
        @ 2024-11-19 20:21:06
        #include<bits/stdc++.h>
        using namespace std;
        int main(){
            long long a,b,p,res=1;
            scanf("%ld%ld%ld",&a,&b,&p);
            while(b!=0){
                if(b&1){
                    res=res*a%p;
                }
                a=a*a%p;
                b>>=1;
            }
            printf("%ld\n",res%p);
            return 0;
        }
        
        • -2
          @ 2024-10-17 21:24:34

          知识点:快速幂

          /*
          int      %o/%lo(八进制) %d/%i/%ld/%li(十进制) %x/%lx(十六进制)[如标名为o/lo/d/i/lo/li/x/lx即输出为八进制/十进制/十六进制]
          longlong %lld
          float    %f/%e
          double   %lf/%le
          char     %c
          char[]   %s
          'a'=97
          'z'=122
          'A'=65
          'Z'=90
          '0'=48
          '9'=57
          */
          #include <iostream>
          #include <iomanip>
          #include <cmath>
          #include <cstdio>
          #include <cstring>
          #include <algorithm>
          #include <ctime>
          #include <limits>
          #include <assert.h>
          #include <stdlib.h>
          using namespace std;
          #define LL long long
          #define ull unsigned long long
          const int N=1e5+10;
          const int INF=0x3f3f3f3f;
          const double pi=3.1416;
          LL a,b,p;
          long long power(long long a,long long b,long long p){
          	long long ans=1;
          	long long wp=a;
          	while(b){
          		if(b&1){
          			ans=ans*wp%p;
          		}
          		b>>=1;
          		wp=wp*wp%p;
          	}
          	return ans%p;
          }
          int main(){
          	cin>>a>>b>>p;
          	cout<<power(a,b,p)<<endl;
          return 0;
          }
          
          • -3
            @ 2023-4-23 20:48:48
            /*****************************************
            备注:数学nanhai 5 
            ******************************************/
            #include <queue>
            #include <math.h>
            #include <stack>
            #include <stdio.h>
            #include <iostream>
            #include <vector>
            #include <iomanip>
            #include <string.h>
            #include <algorithm>
            using namespace std;
            #define LL long long
            const int N = 1e5 + 10;
            const int INF = 0x3f3f3f3f;
            LL power(LL n , LL m , LL p)
            {
            	if(n == 0)
            		return 0;
            	LL ans = 1;
            	while(m)
            	{
            		if(m&1)
            			ans = (ans * n) %p;
            		m >>= 1;
            		n = (n*n)%p;
            	}
            	return ans%p;
            }
            int main()
            {
            	LL n , m , p;
            	cin >> n >> m >> p;
            	cout << power(n , m , p);
            	return 0;
            }
            
            • 1

            信息

            ID
            2
            时间
            1000ms
            内存
            128MiB
            难度
            8
            标签
            递交数
            3165
            已通过
            484
            上传者