用c语言程序实现对素数的判断

题目:

输出1-N之间的所有素数

要求:

为了便于观察结果,在控制台里每一行输出5个数,并且这5个数之间以空格作为分隔

思路:

首先要知道什么是素数以及如何判断一个数是不是素数,素数就是除了1和它自身外,没法被其他自然数整除的数;知道怎样判断素数之后就可以尝试用C语言实现判断了。

过程:

  • 第一次写出来的代码运行出来之后,有很多的乱码,最后还是请教了学长才改过来的
  • 然后我又运行了一次,emmmmm没有很顺利,我发现运行的结果里面少了一个2,直接从3开始了,下面就是运行结果没有2的样子,顺便附上代码
#include "stdio.h"
int main()
{
	int i, j, n, t = 0;
	printf("请输入n:");
	scanf("%d", &n);
	for (i = 2; i <= n; i++)
	{
		for (j = 2; j * j <= i; j++)
		{
			if (i % j == 0)
				break;
		}
		if (i % j != 0)
		{
			++t;
			printf("%d\t ", i);
			if (t % 5 == 0)
			{
				printf("\n");
			}
		}
	}
	return 0;
}

我自己改了很多遍,但是没有什么用,甚至越改越不对哈哈哈,然后我就又去请教了学长和同学,他们给我指出了上面代码存在的问题:2%2==0,就直接跳出循环,不会输出。解决方法就是:直接先输出一个2,在进行后面的循环。于是我的代码变成了这个样子:

  • #include "stdio.h"
    int main()
    {
    	int i, j, n, t = 0;
    	printf("请输入n:");
    	scanf_s("%d", &n);
    	printf("%d\t ", 2);
    	t++;
    	for (i = 2; i <= n; i++)
    	{
    		for (j = 2; j * j <= i; j++)
    		{
    			if (i % j == 0)
    				break;
    		}
    		if (i % j != 0)
    		{
    			++t;
    			printf("%d\t ", i);
    			if (t % 5 == 0)
    			{
    				printf("\n");
    			}
    		}
    	}
    	return 0;
    }

    这个代码运行出来的结果就是正确的了,就像下图这样:

    哈哈哈哈大功告成!

  • 写代码其实也是一件需要锻炼的事情,自己写出的代码运行成功的那一刻真的挺开心的。嗯!这只是一个开始,以后要更努力一点!感谢各位帮助我的同学和学长哈哈哈哈哈笔芯~

猜你喜欢

转载自blog.csdn.net/qq_41649694/article/details/81283432