13 条题解

  • 2
    @ 2025-5-11 9:42:17
    #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
      @ 2025-5-10 9:52:48

      分治

      #include<bits/stdc++.h>
      using namespace std;
      const int N=1e5+5,INF=0x3f3f3f3f;
      typedef long long LL;
      typedef unsigned long long ULL;
      ULL a,b,p; 
      ULL f(ULL a,ULL b){
      	if(b==0)return 1%p;
      	if(b==1)return a%p;
      	if(b&1)return a*f(a*a%p,b/2)%p;
      	return f(a*a%p,b/2)%p;
      }
      int main()
      {
      	cin>>a>>b>>p;
      	cout<<f(a,b)%p;
      	return 0;
      }
      
      • @ 2025-5-11 15:15:25

        666,盐都不盐了,直接把张老师教的代码搬过来了

    • 1
      @ 2025-5-10 9:32:02
      #include<bits/stdc++.h>
      using namespace std;
      long long a, b,c ,p,ans=1,cnt;
      int main(){
      	cin>>a>>b>>p;
      	cnt=a;
      	while(b!=c){
      		if(b%2==1){
      		ans=ans*cnt%p;
      		}
      		cnt=cnt*cnt%p;
      		b/=2;
      	}
      	cout<<ans%p;
      	return 0;
      }
      //迪奥代码
      
      
      • 1
        @ 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-5-10 9:30:28
        #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;
        		a = a*a%p,b>>=1;
        	}
        	return ans%p;
        }
        int main()
        {
        	cin>>a>>b>>p;
        	cout<<power();
        	return 0;
        }
        
        
        • 0
          @ 2025-5-10 9:30:03
          #include<bits/stdc++.h>
          using namespace std;
          #define LL long long
          const int N = 1e5 + 10;
          const int INF = 0x3f3f3f3f;
          long long power( long long n , long long m , long long p )
          {
          	if ( n == 0 )
          	{
          		return 0;
          	}
          	long long ans = 1;
          	while ( m )
          	{
          		if ( m & 1 )
          		{
          			ans = ( ans * n ) % p;
          		}
          		m >>= 1;
          		n = ( n * n ) % p;
          	}
          	return ans % p;
          }
          int main()
          {
          	long long n , m , p;
          	cin >> n >> m >> p;
          	cout << power( n , m , p );
          	return 0;
          }
          //菜鸟驿站
          //老六专属
          • 0
            @ 2025-5-10 9:29:31
            #include<bits/stdc++.h>
            using namespace std;
            #define LL long long
            const int N = 1e5 + 10;
            const int INF = 0x3f3f3f3f;
            long long power( long long n , long long m , long long p )
            {
            	if ( n == 0 )
            	{
            		return 0;
            	}
            	long long ans = 1;
            	while ( m )
            	{
            		if ( m & 1 )
            		{
            			ans = ( ans * n ) % p;
            		}
            		m >>= 1;
            		n = ( n * n ) % p;
            	}
            	return ans % p;
            }
            int main()
            {
            	long long n , m , p;
            	cin >> n >> m >> p;
            	cout << power( n , m , p );
            	return 0;
            }
            //菜鸟驿站
            //老六专属
            • 0
              @ 2025-4-21 20:21:14
              
              cpp
              ```
              
              #include <bits/stdc++.h>
              using namespace std;
              #define LL long long
              const int N = 1e5 + 10;
              const int INF = 0x3f3f3f3f;
              long long power( long long n , long long m , long long p )
              {
              	if ( n == 0 )
              	{
              		return 0;
              	}
              	long long ans = 1;
              	while ( m )
              	{
              		if ( m & 1 )
              		{
              			ans = ( ans * n ) % p;
              		}
              		m >>= 1;
              		n = ( n * n ) % p;
              	}
              	return ans % p;
              }
              int main()
              {
              	long long n , m , p;
              	cin >> n >> m >> p;
              	cout << power( n , m , p );
              	return 0;
              }
              //菜鸟驿站
              //老六专属
              ```
              • -1
                @ 2025-5-10 9:30:35

                #include #include

                include

                #include #include #include #include const int N=1e2+10; const int INF =0x3f3f3f3f; using namespace std; unsigned long long a,b,p; int power(int a,int b,int p){ long long ans=1; long long wq=a; while(b){ if(b&1){ ans=ans*wq%p;

                	}
                	b>>=1;
                	wq=wq*wq%p;
                
                }
                return ans %p;
                

                } int main(){ cin>>a>>b>>p; cout<<power(a,b,p); }

                • -1
                  @ 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;
                  }
                  ```
                  
                  • -1
                    @ 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;
                    }
                    
                    • -3
                      @ 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;
                      }
                      
                    • -4
                      @ 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
                      标签
                      递交数
                      3424
                      已通过
                      520
                      上传者