File tree 3 files changed +106
-0
lines changed
solution/2600-2699/2614.Prime In Diagonal
3 files changed +106
-0
lines changed Original file line number Diff line number Diff line change @@ -188,6 +188,43 @@ func max(a, b int) int {
188
188
}
189
189
```
190
190
191
+ ### ** Rust**
192
+
193
+ ``` rust
194
+ impl Solution {
195
+ pub fn diagonal_prime (nums : Vec <Vec <i32 >>) -> i32 {
196
+ let mut ans = 0 ;
197
+ let n = nums . len ();
198
+
199
+ for (i , row ) in nums . iter (). enumerate () {
200
+ if Self :: is_prime (row [i ]) && row [i ] > ans {
201
+ ans = row [i ];
202
+ }
203
+ if Self :: is_prime (row [n - i - 1 ]) && row [n - i - 1 ] > ans {
204
+ ans = row [n - i - 1 ];
205
+ }
206
+ }
207
+
208
+ ans
209
+ }
210
+
211
+ fn is_prime (n : i32 ) -> bool {
212
+ if n < 2 {
213
+ return false ;
214
+ }
215
+
216
+ let upper = (n as f64 ). sqrt () as i32 ;
217
+ for i in 2 ..= upper {
218
+ if n % i == 0 {
219
+ return false ;
220
+ }
221
+ }
222
+
223
+ true
224
+ }
225
+ }
226
+ ```
227
+
191
228
### ** ...**
192
229
193
230
```
Original file line number Diff line number Diff line change @@ -178,6 +178,43 @@ func max(a, b int) int {
178
178
}
179
179
```
180
180
181
+ ### ** Rust**
182
+
183
+ ``` rust
184
+ impl Solution {
185
+ pub fn diagonal_prime (nums : Vec <Vec <i32 >>) -> i32 {
186
+ let mut ans = 0 ;
187
+ let n = nums . len ();
188
+
189
+ for (i , row ) in nums . iter (). enumerate () {
190
+ if Self :: is_prime (row [i ]) && row [i ] > ans {
191
+ ans = row [i ];
192
+ }
193
+ if Self :: is_prime (row [n - i - 1 ]) && row [n - i - 1 ] > ans {
194
+ ans = row [n - i - 1 ];
195
+ }
196
+ }
197
+
198
+ ans
199
+ }
200
+
201
+ fn is_prime (n : i32 ) -> bool {
202
+ if n < 2 {
203
+ return false ;
204
+ }
205
+
206
+ let upper = (n as f64 ). sqrt () as i32 ;
207
+ for i in 2 ..= upper {
208
+ if n % i == 0 {
209
+ return false ;
210
+ }
211
+ }
212
+
213
+ true
214
+ }
215
+ }
216
+ ```
217
+
181
218
### ** ...**
182
219
183
220
```
Original file line number Diff line number Diff line change
1
+ impl Solution {
2
+ pub fn diagonal_prime ( nums : Vec < Vec < i32 > > ) -> i32 {
3
+ let mut ans = 0 ;
4
+ let n = nums. len ( ) ;
5
+
6
+ for ( i, row) in nums. iter ( ) . enumerate ( ) {
7
+ if Self :: is_prime ( row[ i] ) && row[ i] > ans {
8
+ ans = row[ i] ;
9
+ }
10
+ if Self :: is_prime ( row[ n - i - 1 ] ) && row[ n - i - 1 ] > ans {
11
+ ans = row[ n - i - 1 ] ;
12
+ }
13
+ }
14
+
15
+ ans
16
+ }
17
+
18
+ fn is_prime ( n : i32 ) -> bool {
19
+ if n < 2 {
20
+ return false ;
21
+ }
22
+
23
+ let upper = ( n as f64 ) . sqrt ( ) as i32 ;
24
+ for i in 2 ..=upper {
25
+ if n % i == 0 {
26
+ return false ;
27
+ }
28
+ }
29
+
30
+ true
31
+ }
32
+ }
You can’t perform that action at this time.
0 commit comments