C语言 代码-输入一个正整数判断是否为素数

分析:

根据素数的定义思考。素数是大于1的自然数,除了1和自身外,其他数都不是它的因子。
那我们就可以用一个循环,从2开始遍历到这个数减去1,如果这个数都不能被整除,那么这个数就是素数。

按照思路我们一开始可能会写成

//错误示范
#include <stdio.h>
int main()
{
	int x;
	int i;
	printf("请输入一个正整数:");
	scanf("%d",&x);
	for(i=2;i<=x;i++)
	{ 
	 if(x%i==0)
	 printf("%d 不是素数",x);
    }
	//写到这里会发现出现问题了
	
	
	return 0;
}

写到这我们发现,假如输入的是6

i=2时,可以整除,于是输出:不是素数,i++。接着会继续循环,i=3时,可以整除,于是又会输出一次:不是素数。

那么怎么样合理的跳出循环并进行输出呢?

可以再借助一个变量,此变量和是素数为同一阵营,也就是说当该数可以被整除时,此变量进行变化

代码如下:

#include <stdio.h>
int main()
{
	int x;
	int i;
	int isPrime=1;
	printf("请输入一个正整数:");
	scanf("%d",&x);
	for(i=2;i<x;i++)
	{ 
	 if(x%i==0)
	 {
	 	isPrime=0;
	    break;
	 }
    }
	if(isPrime==1)
	printf("%d 是素数",x);
	else
	printf("%d 不是素数",x);
	
	
	return 0;
}

  • 7
    点赞
  • 36
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值