希望大神指导一下

qq_41145339 2017-11-22 08:05:06
#include <stdio.h>
#include <math.h>
main()
{
int num,i;
printf ("请输入一个整数!:");
scanf ("%d", &num);
if (num <= 1)
{
printf("这个不是素数!:");
}
for (i=2;i <= sqrt(num); i++)
{
if ((num % i) == 0)
{
printf ("这个不是素数! :");
}
else
{
printf ("这个是素数! :");
}
}
return 0;
}
这是书上的练习,自己打的,没有语法错误,但是运行之后就没有按照自己的想法那样了,求教
...全文
65 3 点赞 打赏 收藏 举报
写回复
3 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
ckc 2017-11-22
for (i=2;i <= sqrt(num); i++) 循环里发现能整除说明不是质数, 然而不能整除并不能说明是质数,因为循环还没有结束 只有循环结束了,所有小于平方根的数都判断过了才能知道是不是质数
  • 打赏
  • 举报
回复
wang0635 2017-11-22
#include <stdio.h>
#include <math.h>
main()
{
    int num,i;
    printf ("请输入一个整数!:");
    scanf ("%d", &num);
    if (num <= 1)
    {
        printf("这个不是素数!:");
    }
    for (i=2; i <= sqrt(num); i++)
    {
        if ((num % i) == 0)
        {
            printf ("这个不是素数! :");
            break;
        }
    }
    if (i > sqrt(num))
        printf ("这个是素数! :");

    return 0;
}
  • 打赏
  • 举报
回复
qq_41145339 2017-11-22
有大神指导一下么?帮我修改一下啦,真心不会啊啊,
  • 打赏
  • 举报
回复
相关推荐
发帖
C语言
加入

6.5w+

社区成员

C语言相关问题讨论
申请成为版主
帖子事件
创建了帖子
2017-11-22 08:05
社区公告
暂无公告