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

求素数的时候如何将1说明成不是素数

下凡小仙男 发布于 2020-03-17 11:04, 1978 次点击
#include<stdio.h>
int main()
{
    int X;
    scanf("%d",&X);
     
    int i,k=1;
    for(i=2;X>i&&X>1;i++){
        if(X%i==0){
            k=0;
            break;
    }
    }
     if(k==0){
    printf("不是素数");
     }
    else{
         printf("是素数");
    }return 0;
}
5 回复
#2
lin51616782020-03-17 11:17
循环从2开始
循环结束之后
中途退出的就不是素数
全部循环跑完的就是素数
因为从2开始 1会直接退出循环 属于中途退出的情况
#3
纯蓝之刃2020-03-17 11:20
程序代码:
#include<stdio.h>
int main()
{
    int X;
    scanf("%d",&X);

    int i,k=1;
    if(X>1)         
    {
        for(i=2; X>i; i++)
        {
            if(X%i==0)
            {
                k=0;
                break;
            }
        }
    }
    else
        k=0;
    if(k==0)
    {
        printf("不是素数");
    }
    else
    {
        printf("是素数");
    }
    return 0;
}
#4
return_02020-03-17 14:38
指定flag变量来判断吧,bool型。
程序代码:

int main(){
    int a;
    scanf("&d",&a);
    bool a=true;
    for(int i=2;i<n/2+1;i+=1){
        if(a%i==0){
            a=false;
        }
    }
    //接着就调用flag就行了
    ......
}


[此贴子已经被作者于2020-3-17 14:39编辑过]

#5
下凡小仙男2020-03-17 16:34
回复 2楼 lin5161678
谢谢大佬
#6
下凡小仙男2020-03-17 16:34
回复 3楼 纯蓝之刃
谢谢大佬
1