如何假装用C语言无脑打字2000行找出1~1000之间的质数

461 阅读1分钟

如何假装用C语言无脑打字2000行找出1~1000之间的质数

基础部分

如何用C语言正常编写找出1~1000之间的质数

  • 质数:因数只有1和它本身的数,最小的质数是2。
  • 知道了质数的概念,那么就好办了。让每一个数和从 2 开始,依次与到其本身之间的所有数字相除,一旦存在两者取余为0,则不为质数。所以只要简单的使用for循环语句嵌套寻找即可(当然也可以用while语句)。
  • C语言代码如下(这边我采用while与for的嵌套)
#include<stdio.h>
#include<math.h>
int main()
{
	int n=1000,i=2,j; 
        while(i<=n)
	{
		for(j=2;j<=i-1;j++)
                if(i%j==0)break;
		if(j<i-1)printf("%d不是质数\n",i);//可取余为0的数比其数小,则不为质数
	        else printf( "%d是质数\n",i  );
                i++;
        }
         return 0;    
 }

整蛊部分

  • 啥叫假装用C语言无脑打字2000行找出1~1000之间的质数
  • 先看效果图
整蛊运行1.png (这是运行界面) 就是假装这个代码是自己一行一行打出来的(哈哈哈哈……感觉很无聊很无脑?确实呀!但是整朋友很快乐) 这个就更简单了就是在刚才那个程序基础上加几个printf语句就可以了 - C语言代码如下
#include<stdio.h>
#include<math.h>
int main()
{
	int n=1000,i=3,j; 
	printf("   #include<stdio.h>\n   #include<math.h>\n   int main()\n   {\n\tint i\n");
	printf("\tscanf(\"%%d\",&i)\n\n\tif(i==2)printf(\"2是质数\\n\");\n\n");
	while(i<=n)
	{
		for(j=2;j<=i-1;j++)
		{
			if(i%j==0)break;
			
		}
		if(j<i-1)
	        printf("\tif(i==%d)printf(\"%d不是质数\\n\");\n\n",i,i);
		else
		printf("\tif(i==%d)printf(\"%d是质数\\n\");\n\n",i,i);
		++i; 
	}
	printf("   }");
    return 0; 
}

其中值得注意的一点是关于常见转义字符及其作用 (来自百度百科,可自行参考)

转义字符.png