加载中...

浙江理工大学入队200题——15E

问题 E: 零基础学C/C++165——输出素数

题目描述

编写一个判断素数的函数,主函数中利用这个函数,打印出n与m之间的所有素数。

输入

多组测试数据,每组输入2个整数n和m,其中1 < n <= m <= 1000

输出

在一行输出n和m之间(包含n和m)的所有素数,中间用空格隔开,最后一个数后面没有空格。

样例输入 Copy

2 14

样例输出 Copy

2 3 5 7 11 13

题解

这道题与上面几道题目连着的,要注意素数的判定,不要忘了n为1,2的情况,之后就是简单的区间查找。
代码(AC)

点击查看代码
#include <stdio.h>
int prime(int n)
{
	if(n==1) return 0;
	if(n==2) return 1;
	for(int i=2;i<n;i++)
	{
		if(n%i==0) return 0;
	}
	return 1;
}
int main()
{
	int x,y;
	while (scanf("%d%d",&x,&y)!=EOF&&!(x==0&&y==0))
	{
		int flag=0;
		for(int i=x;i<=y;i++)
		{
			if(pr(i)!=0)
			{
				flag++;
			}
		}
		int sign=1;
		for(int i=x;i<=y;i++)
		{
			if(prime(i))
			{
				printf("%d",i);
				if(sign<flag) printf(" ");
				if(sign==flag) printf("\n");
				sign++;//格式要注意
			}
		}
	}
}
posted @ 2022-10-29 23:31  shany212  阅读(33)  评论(0编辑  收藏  举报