admin管理员组

文章数量:1794759

C语言初学者

C语言初学者

C语言初学者-基础的三篇代码-1- 打印100~200间的素数

常用方法- 试除法 -

  • 顾名思义就是一直除看其能否整除,比如要判断一个自然数x是否是素数,就不断用这个数x去除以小于x且大于1的自然数,只要有一个能整除,则x就是合数,否则x是素数。
  • 同样的思想对100~200之间的数判断哪些是素数,哪些不是素数。

我们可以从简到繁的思路依次看到它的多种境界。

思路
  • 先尝试打印100~200间的数;
  • for(i = 100; i <= 200; i++) printf("%d\\t", i);
  • 从100~200间找出是素数的数 首先最简单的一种 :试除法
  • for(j=2;j<i/2;j++) { if(i%j==0) break; } if(j>=i/2) count++;

    进一步优化 :以奇数倍增加

    for(i=101;i<=200;i+=2)//奇数倍增加 for(j=2;j<i/2;j++)

    最优化的一种 :i开平方,减少循环次数

    for(j=2; j<sqrt(longdouble(i); j++)//当i除到根号下i时,判断是否为素数 { if(i%j == 0) t = 1; if(t == 1)//只要有一次t为1,那说明i不是素数 break;//break可以跳出并结束循环 } if(t == 0) printf("%d\\t", i); 完整的代码 #define _CRT_SECURE_NO_WARNINGS 1 #include<stdio.h> #include<math.h> #include<stdlib.h> int main() { int i = 0; int j = 0; int t = 0; int count = 0; for (i = 100; i <= 200; i+=2) { t = 0; for(j=2; j<sqrt(longdouble(i); j++) { if(i%j == 0) t = 1; if(t == 1) break; } if(t == 0) printf("%d\\t", i); } printf("\\ncount = %d\\n"); system("pause"); return 0; }

    运行结果

    打印乘法表 #define _CRT_SECURE_NO_WARNINGS 1 #include<stdio.h> int main() { int i, j, k; for (i = 1; i <= 9; i++) { for (j = 1; j <= i; j++) { k = i*j; printf("%d*%d=%d\\t", i, j, k); } printf("\\n"); } return 0; }

    运行结果 [注]:记得换行和间隔

    判断某一年是否为闰年 #include<stdio.h> int main ( ) { int year = 0; int count = 0; for(year=1000; year<=2000; year++) { if((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0)) printf("%d\\t", year); } printf("\\ncount=%d\\n"); getchar(); system("pause"); return 0; }

    运行结果

    本文标签: 初学者语言