#include <stdio.h>
#include <math.h>
int isPrimeNumber(int m){
int i;
int k = (int)sqrt((double)m);
for(i=2; i<=k; i++){
//只要符合条件的,(即除自身和1不能被整除)(小技巧
if(m%i==0){
break;
}
}
if(i>k){
return 1;
//printf("%d 是素数\n", m);
}
else{
return 0;
//printf("%d 不是素数\n", m);
}
}
int main()
{
int mm = 11;
int i;
int isPrimeNumber(int m);
int j;
int count = 0;
for(j=101; j<=200; j++){
if(isPrimeNumber(j)){
printf("%d ", j);
count++;
if(count%5==0){
printf("\n");
}
}
}
return 0;
}
小技巧:
- 当一个代码块可以完成某一项功能时,可以把它构建成函数(注意要有相应返回值)
使得代码更简洁高效,可移植性强 - 当循环且需要遍历所有的数时是目的时,把自己所不需要的跳过,用break
eg:for(i=2; i<=k; i++){
//只要符合条件的,(即除自身和1不能被整除)(小技巧
if(m%i==0){
break;
}
} - 当一个代码完成执行且正确时,可以进行改进
从代码美观****时间复杂度 - 强制类型转换
形式:(转换类型)+变量名
eg:double a;int k;k=(int)a; - sqrt()函数
特点:
返回double类型
参数也是double类型
要使用先加头文件<math.h> - 素数
因子只有1和本身
eg: 1 3 5 7 11 等等