zzxfactest.c

来自「密码大家Shoup写的数论算法c语言实现」· C语言 代码 · 共 78 行

C
78
字号
#include <NTL/ZZXFactoring.h>NTL_CLIENTlong compare(const ZZX& a, const ZZX& b){   if (deg(a) < deg(b))      return 0;   if (deg(a) > deg(b))      return 1;   long n = a.rep.length();   long i;   for (i = 0; i < n; i++) {      if (a.rep[i] < b.rep[i]) return 0;      if (a.rep[i] > b.rep[i]) return 1;   }   return 0;}      void sort(vec_pair_ZZX_long& v){   long n = v.length();   long i, j;   for (i = 0; i < n-1; i++)      for (j = 0; j < n-1-i; j++)         if (compare(v[j].a, v[j+1].a)) {            swap(v[j].a, v[j+1].a);            swap(v[j].b, v[j+1].b);         }}             int main(int argc, char **argv){   ZZX f1, f;   if (argc > 1)       ZZXFac_MaxPrune = atoi(argv[1]);   cin >> f;   vec_pair_ZZX_long factors;   ZZ c;   double t;   t = GetTime();   factor(c, factors, f, 0);   t = GetTime()-t;   cerr << "total time: " << t << "\n";   mul(f1, factors);   mul(f1, f1, c);   if (f != f1)      Error("FACTORIZATION INCORRECT!!!");   sort(factors);   cout << c << "\n";   cout << factors << "\n";   return 0;}

⌨️ 快捷键说明

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