素数定义:质数又称素数。指在一个大于1的自然数中,除了1和此整数自身外,没法被其他自然数整除的数。换句话说,只有两个正因数(1和自己)的自然数即为素数。比1大但不是素数的数称为合数。1和0既非素数也非合数。素数在数论中有着很重要的地位。3 b e$ o& _3 g# z# {0 g8 A
6 {- U" \- h0 n' @& s8 R W! K. f
素数是算法中经常提到的一种数的类型,求一个正整数的所有素数因子也是很多算法中经常用到的,今天在做一道算法题时也遇到了素数的求解,故在此记录一下,以备后用!9 u( i5 h2 r+ T A/ f( E# F; m
$ w2 u, r5 g: c8 n/ a#include <iostream> 8 F9 | ?+ c7 ?6 Q- Z5 Dusing. t2 |" B/ t9 Z" k$ y: q/ U/ ~) e' t. w
namespace std;% p( h A0 U; [6 g( C5 }! r {' @
3 n! Q, z/ h% ?- X" r) ovoid PrimaryCal(int num) 8 O, S5 l0 l) u: D" [+ H9 ~{2 ^& m- B. u3 t0 @2 {
for(int i=2;i*i<=num;i++) * z- I8 j1 ^5 C0 O {8 z9 Y2 A& O2 K9 r! B( i1 k* J
while(num%i==0) ]- o# e: b" F0 W- H {* a6 j* e% n) G* n+ C7 K$ W
cout<<i<<" 9 r0 t3 D4 \9 B9 x% g% M";. ?& [. m) o, Q) A7 ?5 `2 v
num/=i; - M: z: ~4 m" t2 {; [' V }& o# |3 N8 t g: y( v) m* o5 O
}. Q+ w: n2 @7 ?) m4 P, @( t
if(num!=1) ( Y1 K4 I, g$ c; S2 \& i4 } { & U3 K* r1 u0 H- h cout<<num; 1 Z) W0 ?. n/ p* T }& y5 _8 T4 Y2 d- @) }
}8 n! `( @# h' B; R! u. C; C