# Programming with NTL; help required!

Discussion in 'C' started by ikj, May 25, 2009.

1. ### ikjNew Member

Joined:
May 14, 2009
Messages:
14
0
Trophy Points:
0
im writin this code to generate the powers of 2 n 3 ie (2^i)*(3^j) with i and j from 0 to 64 and since im using NTL i dont have to worry bout system storage constraints.

here's my code:
Code:
```
#include<NTL/ZZ.h>
#include<NTL/vec_ZZ.h>
NTL_CLIENT
#define SIZE_OF_INTEGER 64
vec_ZZ sort_a(vec_ZZ a, long l)
{
ZZ temp;
for(long i=0;i<l;i++)
{
for(long j=i;j<l-i-1;j++)
{
if(a[i]>a[j])
{
temp=a[i];
a[i]=a[j];
a[j]=temp;
}
}
}
return a;
}
main()
{
ZZ c,n,d;
vec_ZZ a,b;
a.SetLength(power_long(SIZE_OF_INTEGER,2));
ZZ v;
v=power_long(2,SIZE_OF_INTEGER);
long    x=0;
for(long i=0;i<SIZE_OF_INTEGER;i++)
{
for(long j=0;j<SIZE_OF_INTEGER;j++)
{
d=(power_long(2,i)*power_long(3,j));
if(d<v)
{
a[x]=d;
cout<<a[x]<<endl;
x++;
}
else
break;
}
}
sort_a(a,a.length());
cout<<endl<<x<<endl;
for(long k=0;k<a.length();k++)
cout<<a[k]<<endl;
}
```

2. ### xpi0t0sMentor

Joined:
Aug 6, 2004
Messages:
3,012
203
Trophy Points:
0
Occupation:
Senior Support Engineer
Location:
England
How exactly isn't it working properly? What does it do that you don't expect, or what does it not do that you expected it would?

3. ### ikjNew Member

Joined:
May 14, 2009
Messages:
14
0
Trophy Points:
0
i want it to print the powers of 2 and 3 ie (2^i)*(3^j) with i and j from 0 to 64
ie the output shud be
1,2,3,4,6,8,9,12,15,16,18.....
but i dont get that output; wat i get is something else, i get some big negative number (1 followed by 31 zeores in binary form) 64 times and then alot of zeroes instead of what i've mentioned above..

Joined:
Aug 6, 2004
Messages:
3,012