Skip to content

Commit 494c41d

Browse files
authored
feat: add rust solution to lc problem: No.2614 (#1146)
1 parent 04aa7be commit 494c41d

File tree

3 files changed

+106
-0
lines changed

3 files changed

+106
-0
lines changed

solution/2600-2699/2614.Prime In Diagonal/README.md

+37
Original file line numberDiff line numberDiff line change
@@ -188,6 +188,43 @@ func max(a, b int) int {
188188
}
189189
```
190190

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+
191228
### **...**
192229

193230
```

solution/2600-2699/2614.Prime In Diagonal/README_EN.md

+37
Original file line numberDiff line numberDiff line change
@@ -178,6 +178,43 @@ func max(a, b int) int {
178178
}
179179
```
180180

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+
181218
### **...**
182219

183220
```
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
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+
}

0 commit comments

Comments
 (0)