📄 aa.cpp
字号:
#include "afxwin.h"
#include "Bigint.h"
#include "Bint.h"
#include "windows.h"
typedef struct _TTT
{ ULONG SerialNumberLength;
ULONG Result;
ULONG Reserved[2];
//UCHAR SerialNumberData[8];
} MEDIA_SERIAL_NUMBER_DATA;
#include "mmsystem.h"
unsigned int sqrt_16(unsigned long M)
{
unsigned int N, i;
unsigned long tmp, ttp; // 结果、循环计数
if (M == 0) // 被开方数,开方结果也为0
return 0;
N = 0;
tmp = (M >> 30); // 获取最高位:B[m-1]
M <<= 2;
if (tmp > 1) // 最高位为1
{
N ++; // 结果当前位为1,否则为默认的0
tmp -= N;
}
for (i=15; i>0; i--) // 求剩余的15位
{
N <<= 1; // 左移一位
tmp <<= 2;
tmp += (M >> 30); // 假设
ttp = N;
ttp = (ttp<<1)+1;
M <<= 2;
if (tmp >= ttp) // 假设成立
{
tmp -= ttp;
N ++;
}
}
return N;
}
//#include "math.h"
int main()
{ CBigInt a,b,c;
CString a1,b1,x,y;
MEDIA_SERIAL_NUMBER_DATA bm={0};
CBint P,Q,N,D;
DWORD t1,t2;
int bb=-200;
bb%=9;
x="4166889985013824336431725767770561189809242021900684099464811963229816785700099";
y="331365307813878144981708690671365840573451477664368377164801794569971892602655";
P="-0xA9BA8C2B728B66CC684DF7F254373133780CE1C861EABDB0084F2FB835ECB4138757455599F960EE66CFC4FDB1A3D0C1328313EBA0D4A0DBB62BD9DD15C2FD45";
Q="0xD9B436D24ADA03433BEA106628B8DB11A47DCD14494C471179513B5DD794D44A3FE9748BFCADCECBD7563AF5A316221F4798792184074917BE2F4B041339D45D";
N=P.Mul(Q);
N=N.Div(P);
Q="200";
a1=Q;
Q%=9;
//N.Euc(Q);
a1=Q;
//Q=P-5;
a.InPutFromStr(CString(P),10);
b.InPutFromStr(CString(Q),10);
a1=P;
b1=P.Sub(Q);
t1=timeGetTime();
for(int i=0;i<10000;i++)
{
D=P.Add(Q);
a1=D;
}
D="4166889985013824336431725767770561189809242021900684099464811963229816785700099";
a1=D;
a1=--D;
a1=D;
a1=D++;
a1=D;
t2=timeGetTime()-t1;
a1.Format("%d",t2);
AfxMessageBox(a1);
return 0;
a.Add(b).OutPutToStr(b1,10);
if(a1!=b1)
{
c=a.Mul(b);
}
c=a.Mul(b);
int kx=1000;
kx=kx %98;
kx=1000;
kx=kx/98;
kx=1000-kx*98;
CBint m(x),mm(y);
t2=timeGetTime();
m="4166889985013824336431725767770561189809242021900684099464811963229816785700099";
a1=CBint::Sqrt(x);
t2=timeGetTime()-t2;
a.InPutFromStr(CString("56989898988"),10);
b=a.Mul(a);
b.OutPutToStr(a1,10);
P=P.Add(0);
m+= mm;
int k=m.Compare(mm);
a1=m;
m="-1";
m=m.Add(-5);
a1=m;
a1=m.Sub(mm);
a1=m.Sub(mm);
// */
t1=timeGetTime();
a.InPutFromStr(x);
b.InPutFromStr(y);
CBint tx;
tx.InPutFromStr(x);
CBint tx1(tx);
a=a.Mul(b);
a.OutPutToStr(a1);
t1=timeGetTime()-t1;
CString Msg;
Msg.Format ("用时:%d ",t1);
AfxMessageBox(Msg);
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -