for循环判断一个整数是否为素数


判断素数


  1. 规划:(伪代码)
    提示用户输入数字;
    当scanf()返回值为1;
    分析该数并报告结果;
    提示用户继续输入.
  2. 设计如何找出素数:
    for (div = 2; div < num; div++)
    if(num % div == 0)
    printf("%d is divisible by %d\n",num , div);
    该循环检查2到num之间的所有数,判断他们是否为num整除.但是这个方法过于浪费时间.
  3. 改进方法:
    例如:如果考虑144,它的约数有2和72,3和48,4和36,6和24,8和18,9和16,12和12,16和9,18和8等等,再找到12和12这一对约数以后,又开始得到已经找到的约数(只不过是次序相反).因此,不用循环到143,在达到12
    就可以停止循环.这大大节省了时间.
    for (div = 2; (div*div)<=num; div++)
    if(num % div == 0)
    printf("%d is divisible by %d and %d\n",num , div ,num/div);
  4. 如何知道这个数字是素数?如果num是素数,程序不会进入if语句.要解释这个问题,可以在外层循环把一个变量设置为某一个值(如:1),然后在if语句中把该变量重新设置为0;循环完成后,检查该变量的值是否为1,如果事,说明没有进入if语句,那么该数就是素数.这样的变量通常称为***标记***.
  5. 在这里插入图片描述
  6. 标记的使用:
    for循环结束以后,使用if判断isprime的值是否为true,如果还是true,则该数就是素数
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值