Update 素数.cpp

master
p5tblxgmk 3 years ago
parent f403d39d40
commit 10809ae7fd

@ -1,18 +1,18 @@
#include <stdio.h> #include <stdio.h>
#include <math.h>//ʹsqrt<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> #include <math.h>//使sqrt可以正常运行
int prime(int n) int prime(int n)
{ {
int i ,m = 0; int i ,m = 0;
if(n==0||n==1)//<EFBFBD>ж<EFBFBD>0<EFBFBD><EFBFBD>1<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> if(n==0||n==1)//判断0和1的情况
return 0; return 0;
else else
{ {
for (i = 2; i <= sqrt(n); i++)//<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѭ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ԭ<EFBFBD><EFBFBD>Ϊһ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>б<EFBFBD>ƽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> for (i = 2; i <= sqrt(n); i++)//减少循环次数,原理为一个数不可能有比平方根大的因子
{ {
if (n%i == 0) if (n%i == 0)
{ {
m++;//m<EFBFBD><EFBFBD>Ϊ0ʱ˵<EFBFBD><EFBFBD>n<EFBFBD><EFBFBD><EFBFBD><EFBFBD>1<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֮<EFBFBD><EFBFBD>б<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Բ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> m++;//m不为0时说明n除了1和它本身之外还有别的因子所以不是素数
} }
} }
if(m==0) if(m==0)
@ -30,7 +30,7 @@ int main()
{ {
int num = 0; int num = 0;
scanf("%d", &num); scanf("%d", &num);
if (prime(num))//<EFBFBD><EFBFBD><EFBFBD><EFBFBD>prime<EFBFBD><EFBFBD><EFBFBD><EFBFBD> if (prime(num))//调用prime函数
{ {
printf("Yes"); printf("Yes");
} }
@ -39,3 +39,5 @@ printf("No");
return 0; return 0;
} }

Loading…
Cancel
Save