@@ -29,7 +29,7 @@ fn main(){
2929 println ! ( "You have chosen to order numbers upto {}" , _totalNodes) ;
3030 println ! ( "You have chosen to hava a max number of threads of {}" , _maxThreads) ;
3131 let totalNodes: i16 = _totalNodes. parse :: < i16 > ( ) . unwrap ( ) ;
32- let maxThreads: i8 = _maxThreads. parse :: < i8 > ( ) . unwrap ( ) ;
32+ let maxThreads: i16 = _maxThreads. parse :: < i16 > ( ) . unwrap ( ) ;
3333 let now = Instant :: now ( ) ;
3434
3535 let paths = getCore ( totalNodes, maxThreads, now) ;
@@ -39,17 +39,17 @@ fn main(){
3939 println ! ( "It took aproximately {} seconds to compute" , endTime) ;
4040}
4141
42- fn getCore ( totalNodes : i16 , maxThreads : i8 , now : Instant ) -> Vec < Vec < i16 > > {
42+ fn getCore ( totalNodes : i16 , maxThreads : i16 , now : Instant ) -> Vec < Vec < i16 > > {
4343 let connections: Vec < [ i16 ; 2 ] > = findConnections ( totalNodes) ;
4444 let ( sender, reciever) = sync_channel ( maxThreads as usize ) ;
4545 let mut paths: Vec < Vec < i16 > > = vec ! [ ] ;
4646
4747 println ! ( "There are {} connections" , connections. len( ) ) ;
4848
4949 let mut i: i16 = 0 ;
50- let mut openThreads = 0 ;
50+ let mut openThreads: i16 = 0 ;
5151 loop {
52- while ( openThreads < maxThreads as usize ) && ( i < totalNodes) {
52+ while ( openThreads < maxThreads) && ( i < totalNodes) {
5353 startCalcAsync ( i, connections. clone ( ) , totalNodes. clone ( ) , sender. clone ( ) ) ;
5454 openThreads += 1 ;
5555 i += 1 ;
@@ -61,7 +61,7 @@ fn getCore(totalNodes:i16, maxThreads:i8, now:Instant) -> Vec<Vec<i16>>{
6161
6262 println ! ( "finnished task {} of {} at {} seconds" , completedTask. startNode, totalNodes, now. elapsed( ) . as_secs( ) ) ;
6363
64- if openThreads == 0 {
64+ if openThreads < 1 {
6565 break ;
6666 }
6767 }
@@ -173,6 +173,16 @@ fn findConnections(totalNodes:i16) -> Vec<[i16; 2]> {
173173}
174174
175175fn isSquare ( num : i16 ) -> bool {
176- let sqrt: f64 = ( num as f64 ) . sqrt ( ) ;
177- return sqrt == sqrt. round ( ) ;
176+ let mut i: i16 = 2 ;
177+ loop {
178+ if i* i > num {
179+ return false ;
180+ }
181+ else if i* i == num {
182+ return true ;
183+ }
184+ else {
185+ i += 1 ;
186+ }
187+ } ;
178188}
0 commit comments