第7和9不通过,那个大佬能看看哪里出了问题了吗
查看原帖
第7和9不通过,那个大佬能看看哪里出了问题了吗
371253
qinlei楼主2022/3/10 17:21
#include<stdio.h>
#include<string.h>
#include<math.h>
int num[10000]={2,3,5,7,11};
int num2[10000];
int main()
{
	int a, b;
	scanf("%d%d", &a, &b);
	int d1, d2, d3, d4;
	int t = 5;
	int length1 = 0;
	int length2 = 0;
	for (int e = a; e != 0; e = e / 10)
		length1++;
	for (int e = b; e != 0; e = e / 10)
		length2++;
	int all;
	if(length2>=3&&length1<=3)
		for (d1 = 1; d1 <= 9; d1+=2)
		{
			for (d2 = 0; d2 <= 9; d2++)
			{
				all = 101 * d1 + 10 * d2;
				if (all % 3 == 0 || all % 5 == 0 || all % 7 == 0 || all % 11 == 0)
					continue;
				num[t] = all;
				t++;
			}
		}
	if(length2>=5&&length1<=5)
		for (d1 = 1; d1 <= 9; d1 += 2)
		{
			for (d2 = 0; d2 <= 9; d2++)
			{
				for (d3 = 0; d3 <= 9; d3++)
				{
					all = 10001 * d1 + 1010 * d2 + 100 * d3;
					if (!(all % 3 == 0 || all % 5 == 0 || all % 7 == 0 || all % 11 == 0))
					{
						num[t] = all;
						t++;
					}
				}
					
			
			}
		}
	if(length2>=7&&length1<=7)
		for (d1 = 1; d1 <= 9; d1 += 2)
		{
			for (d2 = 0; d2 <= 9; d2++)
			{
				for (d3 = 0; d3 <= 9; d3++)
				{
					for (d4 = 0; d4 <= 9; d4++)
					{
						all = 1000001 * d1 + 100010 * d2 +10100 * d3 + 1000 * d4;
						if (!(all % 3 == 0 || all % 5 == 0 || all % 7 == 0 || all % 11 == 0))
						{
							num[t] = all;
							t++;
						}
						
					}

				}

			}
		}
	int t2 = 0;
	for (int i = 0; num[i]<=b; i++)
	{
		int flag = 0;
		for(int j=2;j<=sqrt(num[i]);j++)
		{
			if (num[i] % j == 0)
				flag += 1;
		}
		if (flag == 0&&num[i]>=a&&num[i]<=b)
		{
			num2[t2] = num[i];
			t2++;
		}
	}
	for (int i = 0; i <t2; i++)
	{
		printf("%d\n", num2[i]);
	}
	return 0;
}
2022/3/10 17:21
加载中...