50分求助!!!一个wa,四个re!!!
查看原帖
50分求助!!!一个wa,四个re!!!
790125
gzl1586700621楼主2022/9/20 12:29
#include <stdio.h>
#include<stdbool.h>
bool shu(int i);
bool zhen(int i);

int main()
{
	int m, n;
	int b = 0;
	//m = 10, n = 35;
	int a[10000] = { 0 };
	int x[10000] = { 0 };
	scanf("%d %d", &m, &n);
	int sum=0;
	for (int i = m; i <= n; i++)
	{
		if (shu(i)&&zhen(i))//判断真素数
		{
			a[i] = 1;
			b = 1;
			sum++;
		}
	}
	
	int k = 1;
	for (int j = m; j <= n; j++)
	{
		if (a[j] == 1)
		{
			x[k] = j;
			k += 2;
		}			
	}
	if (b == 0) printf("NO");
	else
	{
		for (int g = 1; g <= sum * 2; g += 2)
		{
			printf("%d", x[g]);//打印真素数
			if (x[g + 2] != 0) printf(",");//在两个真素数间插入‘,’
		}
	}
	
	return 0;
}

bool shu(int i)//判断素数
{	
	int m = 0;
	for (int j = 2; j * j <= i; j++)
	{
		if (i % j == 0)
		{
			m = 1;
			break;
		}
	}
	if (m == 0) return true;
	else return false;
}

bool zhen(int i)//判断真素数
{	
	int t = i;
	int a = 0;
	while(t)//逆序数字
	{
		a = a * 10 + t % 10;
		t /= 10;
	}
	if (shu(a)) return true;//判断逆序数是否为素数
	else return false;
}
2022/9/20 12:29
加载中...