输入一个整数n,判断这个数是否质数

简单的算法,简单的思路.但是中间被一个问题折磨了,那就是编译的时候必须用命令

gcc main -lm

否则不通过

 

=================

 

判断一个整数n是否质数,首先判断n是否小于2,如果小于2,那么就不是质数.

接着就是取n的平方根sn,用循环for(i=2;i<=sn;i++),把n/i依次求余数,如果余数=0那么就是可以被当前i整除,因为i>1,所以就能判断n不是质数.否则n为质数.

 

#include "stdio.h" #include "stdlib.h" #include "math.h" int main(int argc, char *argv[]) { int n=0; if(2 == argc){ n=atoi(argv[1]); } else{ printf("N has no value./n"); return 0; } if(n < 2){ printf("No/n"); return 0; } int sn=(int)(sqrt((double)n)), i; printf("n=%d, sn=%d/n",n,sn); for(i=2;i<=sn;i++){ printf("i=%d, n%%i=%d/n",i,n%i); if(0 == (n%i)){ printf("No/n"); return 0; } } printf("Yes/n"); return 0; }


 

你可能感兴趣的:(算法笔记)