⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 test.cpp

📁 该代码实现了256位的大数运算
💻 CPP
字号:
#include<iostream.h>
#include<stdlib.h>
#include<stdio.h>
#include<time.h>
#include<math.h>
#include"hugeint.h"
typedef hugeint  Hugeint;
bool IsHusu (Hugeint a,Hugeint b);
bool IsPrime(Hugeint p);
Hugeint X_PmodN(Hugeint X,Hugeint P,Hugeint N);
//int Legendre(a,p);

bool IsPrime(Hugeint p)
{   
	bool b_prime=true;
    
/*	srand(time(NULL));
	for(int k=0;k<100;k++)
	{
		bool b_done=true;
	    while(b_done)
		{
	      int a=rand();
          b_prime=IsHusu(p,a);
		  if(b_prime==false)
		  {
			  k=100;
			  break;
		  }
          int  j=X_PmodN(a,(p-1)/2,p)
		  if(j!=jacobi(a,p))
		  {
			  b_prime=false;
			  k=100;
			  break;
		  }
		  b_done=false;
		}
	}*/
     cout<<"ok";
    Hugeint k=sqrt(p)+1;
    Hugeint i=0;
     for(i=0;i<=k;i=i+1)
	 {
		 if(p%i==0)
		 {
			 b_prime=false;
			 break;
		 }
	 }




	return b_prime;
}


Hugeint X_PmodN(Hugeint x,Hugeint p,Hugeint n)
{
	Hugeint c=1,b=p,a=x,bb=0;
	while(0<b)
	{
		cout<<"b=="<<hugeint(b)<<endl;
		while((b%2)==0)
		{	
			b=b/2;
			a=(a*a)%n;
		}
	
			b=b-1;
			c=(c*a)%n;
		
	}
	return c;
}
Hugeint FaiN(Hugeint n)
{
	Hugeint c=1;
//	if(IsPrime(N))
 //      return  c=N-1;

 //   else
	{
		for(Hugeint i=2;i<n;i=i+1)
		{//cout<<"i=="<<(hugeint)i<<endl;
			if(IsHusu(i,n))
			{ //cout<<"IsHusu(i,n)"<<endl;
				c=c+1;
			}
		}
	
	}
	return c;
}


		

bool IsHusu (Hugeint a,Hugeint b)
{   bool  husu=true;
   

 Hugeint Rem(0);

      while( 0<b )
       {
         Rem = a% b;
          a = b;
          b=Rem;
       }
      if(b==1) husu=false;

	 return husu;
}
int gcd (int x, int y, int *a1, int *a2, int *b1, int *b2)
  {
   int q, r, a, b;

    q = x / y;
    r = x % y;

   a = *a2 - q*(*a1);
    b = *b2 - q*(*b1);

    if (0 == r)
     {
        return y;
      }

    *a2 = *a1;
    *b2 = *b1;

    *a1 = a;
    *b1 = b;

    return gcd (y, r, a1, a2, b1, b2);
  }


void main()
{
//	Hugeint t=X_PmodN(9726,3533,11413);
 //  cout<<"X_PmodN(9726,3533,11413)=="<<(hugeint)t<<endl;
	//hugeint aa="11413";
// cout<<(hugeint)FaiN(aa);
// int x=0;
 //cin>>x;
 //if(IsPrime(11)) cout<<1;
//hugeint a(-1000000),b("-100000000000"),c(0);
hugeint x1(0),x2(-2),x3(4),x4,x5,x6(9);
x4=x3+x2;
x5=2;

//bool bb=(a<=b);
///bb=true;
//cout<<(x2<x3);
//cout<<"x4=="<<x4<<endl;
//cout<<(-2<=x2);
//cout<<(x5-(x6/x2)*x2);

//cout<<x6/2;
cout<<x6/x5<<endl;
//cout<<(x6/2)*x5;
cout<<x6%x5;
//cout<<(x6-((x6/x5)*2));
//cout<<(x5==2);
//cout<<3;
/*	int x=11;
	int y=2;
int a1 = 0;
 int   a2 = 1;
 int  b1 = 1;
 int   b2 = 0;

int    r = gcd (x, y, &a1, &a2, &b1, &b2);

   printf ("%d = (%d) * (%d) + (%d) * (%d)\n",
            r, a1, x, b1, y);

*/


 return ;
}


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -