Update 素数.cpp

master
p5tblxgmk 3 years ago
parent f403d39d40
commit 10809ae7fd

@ -1,18 +1,18 @@
#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 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;
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)
{
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)
@ -30,7 +30,7 @@ int main()
{
int num = 0;
scanf("%d", &num);
if (prime(num))//<EFBFBD><EFBFBD><EFBFBD><EFBFBD>prime<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
if (prime(num))//调用prime函数
{
printf("Yes");
}
@ -39,3 +39,5 @@ printf("No");
return 0;
}

Loading…
Cancel
Save