首页 > 其他分享 >判断素数

判断素数

时间:2022-10-22 10:47:26浏览次数:39  
标签:判断 int double eg 素数 printf 代码

#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;
}

小技巧:

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

标签:判断,int,double,eg,素数,printf,代码
From: https://www.cnblogs.com/97rong/p/16815522.html

相关文章