注册 登录
编程论坛 C语言论坛

萌新求助!!判断素数为什么输出总是0

wangxh123456 发布于 2020-10-31 10:04, 1228 次点击
#include<stdio.h>
int main()
{
    int i,sum,n;
    scanf("%d",&i);
    sum=1;
    if(i==0||i==1)
       {
        printf("0");
       }
    else
    for(n=i-1;sum!=0;n--)
     {if(n!=0)
        sum=i%n;
        else
          printf("1");
     }
     if(sum==0)
     printf("0");

}
5 回复
#2
林月儿2020-10-31 10:13
素数定义清楚吗
#3
纯蓝之刃2020-10-31 11:20
程序代码:
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main()
{
    int i, current, n;
    scanf("%d", &i);
    if (i <= 1)
    {
        printf("0");
    }
    else
    {
        current = 2;
        for (n = 2; n< i; n++)
        {
            if (i % n==0)
            {
                printf("0");
                break;
            }
            else
            {
                if (current<n)
                {
                    printf("1");
                    break;
                }
                else
                    current = i / n;
            }
        }
    }
}
#4
不要冲动2020-11-12 19:41
#include <stdio.h>
#include <stdlib.h>

int main()
{
    int i,n;
    scanf("%d",&i);
    for(n=2; n<i; n++)
        if(i%n==0)break;
    if(n>=i&&i>1)printf("1");
    else printf("0");
    return 0;
}
只是判断素数的话不用三个变量,而且i<=1,的情况可以与后面不是素数的情况合并,没必要单独打印。

[此贴子已经被作者于2020-11-13 12:43编辑过]

#5
biancdong2020-11-28 23:45


#6
百里秀芬兰2020-11-29 14:58
你这段程序逻辑错了,sum最终一定是0。按照你的思路来编辑的话,应该把if判断条件里的n!=0改成n!=1
1