#include<stdio.h>
#include<math.h>int main ()
{
int n,i,k;
printf("please enter a integer number:n=?");
scanf("%d",&n);
k=sqrt(n);
for(i=2;i<=k;i++)
if(n%i==0)break;
if(i<=k)printf("%d is not a prime number.\n",n);
else printf("%d is a prime number.\n",n);
return 0;
}
这是一个检验是否为素数的问题,可能是我有点笨的问题吧,为什么一个数n只要不能被2~k(k=sqrt(n))之间的数整除就是素数呢?实在是想不明白就百度了下,现在已经明白了,或许以后也不会忘,因为我数学相对来说还算优秀吧,属于一点即透的那种,哈哈,有点自恋了。
不过因为i<=k的问题确实是想了好久,有点迷糊的那种,如果让我自己编写代码,我感觉我还是写不出来这样的,刚开始我是太纠结于这个关系式了,后来我算是看明白了,程序中终止for循环有两种,一种是遇到break,另一种是i>k时,前提是如果n没有被2~k之间的数整除就是素数,所以程序中的for循环就应该是i>k时终止循环,可是我们肉眼看不到啊,所以只能在循环结束后用if来判断下i与k的关系了。
每天必范的错误就是标点错误,英文字母错误,还有打字速度还得提升。对于英文一窍不通的我来说,真是不知道未来的路会是怎么样的......明天我要面对的就是关于循环这一章的课后习题了