素数列表图(使用列表实现筛选法求素数)

2023-07-17 11:31 综合百科 0阅读 投稿:小七

用其他语言求素数,不好保存,用VBA求素数,可以把素数放到EXCEL表格中,便于查看。

2

3

5

7

11

13

17

19

23

29

31

37

41

43

47

53

59

61

67

71

73

79

83

89

97

101

103

107

109

113

127

131

137

139

149

151

157

163

167

173

179

181

191

193

197

199

211

223

227

229

233

239

241

251

257

263

269

271

277

281

283

293

307

311

313

317

331

337

347

349

353

359

367

373

379

383

389

397

401

409

419

421

431

433

439

443

449

457

461

463

467

479

487

491

499

503

509

521

523

541

547

557

563

569

571

577

587

593

599

601

607

613

617

619

631

641

643

647

653

659

661

673

677

683

691

701

709

719

727

733

739

743

751

757

761

769

773

787

797

809

811

821

823

827

829

839

853

857

859

863

877

881

883

887

907

911

919

929

937

941

947

953

967

971

977

983

991

997

1009

1013

1019

1021

1031

1033

1039

1049

1051

1061

1063

1069

Sub Prime1()

Dim i, r, c As Integer

Dim num(2 To 16536) As Long

For i = 2 To 16536

num(i) = i

Next i

For i = 4 To 16536 Step 2

num(i) = 0

Next i

cn = 3

For i = 3 To 16536 / 3 Step 2

cn = i

If num(cn) <> 0 Then

cn = cn + i + i

Do While cn <= 16536

num(cn) = 0

cn = cn + i + i

Loop

End If

Next i

r = 1

c = 1

For i = 2 To 16536

If num(i) <> 0 Then

Cells(r, c) = i

c = c + 1

End If

If c > 10 Then

c = 1

r = r + 1

End If

Next i

End Sub

还可以用紧凑法,用大约一半内存就可实现筛法,对挑战极限的条友尤其有用。

声明:若水百科所有作品(图文、音视频)均由用户自行上传分享,仅供网友学习交流。若您的权利被侵害,请联系youzivr@vip.qq.com