开根号法原理个人体会:
及思路:
设输入的数是num,找从2到num中是否有能被num整除的数,如果没有则该数(Q)为素数,既num%Q!=0。
规定q*q==Q,则求num%Q!=0即可转化为求根号num%q!=0,
(根号num/q)的平方就等于(num/Q)。
参考代码如下:
# include <stdio.h>
# include <math.h>
int main(int argc, char const *argv[])
{
printf("请输入\n");
int i,num,flag=0;
scanf("%d",&num);
for ( i = 2; i <=sqrt(num); i++)
{
if (num%i!=0)
{
flag=1;
}
else
{
flag=0;
break; //重点)是非素数,跳出循环
}
}
if(flag==0)
{
printf("%d是非素数\n",num);
}
else
{
printf("%d是素数\n",num);
}
return 0;
}