刷题小记(间隔符号分割,末尾无符号)+素数判断

文章讲述了如何使用编程解决给定整数区间内的素数查找问题,并提供了两种思路:一种是打印过程中实时添加逗号,另一种是确保在打印素数时才添加逗号,避免多余的逗号。
摘要由CSDN通过智能技术生成

问题描述

编程输入两个整数a,b(2<=a<b),输出整数区间[a,b]内的所有素数(测试数据中保证区间内有素数)。区间[a,b]内的所有素数,逗号分隔。

问题关键 

1.进行素数判断(素数是指因数只有1和它本身的数)

2.逗号分隔问题,保证每个数之间都有逗号,并且末尾无逗号

问题思路

1.利用for循环游历1~n,逐个判断是否为n的因数,若是其因数,计数器count++,游历结束以后,若count==2,则这个数为素数,就进行打印输出。

2.分隔符问题有两个思路,第一可以在打印素数的同时,打印一个逗号,最后用退格符消除最后多打印的逗号。第二个思路则是在打印素数的同时,在素数的前面打印一个逗号,第一次打印时,不打印逗号。

代码实现

思路一

#include<stdio.h>
int main()
{
	int a, b, count = 0;
	scanf("%d%d", &a, &b);
	for (int i = a; i <= b; i++)
	{
		count = 0;
		for (int j = 2; j < i; j++)
		{
			if (i % j == 0)
			{
				count++;
			}
		}
		if (count == 0)
		{
			printf("%d,", i);
		}
	}
	printf("\b");

	return 0;
}

思路二

#include<stdio.h>
int main()
{
	int a, b, count = 0, s = 0;
	scanf("%d%d", &a, &b);
	for (int i = a; i <= b; i++)
	{
		count = 0;
		for (int j = 2; j < i; j++) //进行游历来判断素数
		{
			if (i % j == 0)
			{
				count++;
			}
		}
		if (count == 0)
		{
			s++;
		}
		if (count == 0)  //在count=0的条件下,也就是在素数的条件下进行下一步判断
		{
			if (s == 1)  //判断是第几个素数
			{
				printf("%d", i);
			}
			else
			{
				printf(",%d", i);
			}
		}
		
	}
	return 0;
}
		

注意!!

思路二一定要在判断素数的前提下在进行判断是第几个素数,如果没有这个先导条件,那么就会无条件打印所有的数

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值