Initial snark14m import
[snark14.git] / src / snark / lino_sumfac.cpp
1 /*
2  ***********************************************************
3  $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
4  $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/lino_sumfac.cpp $
5  $LastChangedRevision: 80 $
6  $Date: 2014-07-01 21:01:54 -0400 (Tue, 01 Jul 2014) $
7  $Author: agulati $
8  ***********************************************************
9
10  Sum of the prime factors of num
11  */
12
13 #include <cstdio>
14
15 #include "blkdta.h"
16 #include "primfc.h"
17
18 #include "lino.h"
19
20 INTEGER lino_class::sumfac(INTEGER num)
21 {
22         INTEGER sum, m2s, nipf, mnipf, k;
23
24         INTEGER* ipf;
25
26         mnipf = 2;
27
28         while ((1 << mnipf) < num)
29         {
30                 mnipf++;
31         }
32
33         ipf = new INTEGER[mnipf];
34         primfc(num, &m2s, &nipf, ipf, mnipf);
35         sum = 2 * m2s;
36
37         for (k = 0; k < nipf; k++)
38         {
39                 sum += ipf[k];
40         }
41
42         delete[] ipf;  // bug 92 - Lajos - 03/02/2005
43
44         return sum;
45 }