今日学习总结判定素数

#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的关系了。

每天必范的错误就是标点错误,英文字母错误,还有打字速度还得提升。对于英文一窍不通的我来说,真是不知道未来的路会是怎么样的......明天我要面对的就是关于循环这一章的课后习题了


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值