100~200之间的素数(及其四个优化方案)

 要求素数,首先咱们要知道什么是素数,在解题的时候,不要急着去寻找方法解题,而是要先了解它的根本,才能够在遇到相似题的时候轻松面对解决小程序

质数(prime number)又称素数,有无限个。一个大于1的天然数,除了1和它自己外,不能被其余天然数整除,换句话说就是该数除了1和它自己之外再也不有其余的因数;不然称为合数。
ide

程序以下:优化

#include<stdio.h>spa

#include<stdlib.h>blog

int main()get

{it

int i;io

for (i = 100; i <= 200; i++)   //也可自行设定数值范围class

{效率

int j = 0;

for (j = 2; j <= i - 1; j++)

{

if (i%j == 0)

{

break;

}          //若是i%j=0说明i能够整除j,则跳出if语句

}

if (i == j)

{

printf("%d  ", i);

}        

}

system("pause");

return 0;

}

结果以下:

wKioL1agaOiTj2jzAAAVqokjaIw433.png

优化方案一:

int main()

{

int i;

for (i = 101; i <= 200; i+=2)  //因为100不是素数,因此能够从101开始

{

int j = 0;

for (j = 2; j <= i - 1; j++)

{

if (i%j == 0)

{

break;

}          //若是i%j=0说明i能够整除j,则跳出if语句

}

if (i == j)

{

printf("%d  ", i);

}        

}

system("pause");

return 0;

}

优化方案二:

int main()

{

int i;

for (i = 101; i <= 200; i+=2)  //因为100不是素数,因此能够从101开始

{

int j = 0;

for (j = 3; j <= i - 1; j++)

{

if (i%j == 0)

{

break;

}          //若是i%j=0说明i能够整除j,则跳出if语句

}

if (i == j)

{

printf("%d  ", i);

}        

}

system("pause");

return 0;

}

优化方案三:

int main()

{

int i;

for (i = 101; i <= 200; i+=2)  //因为100不是素数,因此能够从101开始

{

int j = 0;

for (j = 3; j <= i - 1; j+=2)

{

if (i%j == 0)

{

break;

}          //若是i%j=0说明i能够整除j,则跳出if语句

}

if (i == j)

{

printf("%d  ", i);

}        

}

system("pause");

return 0;

}

优化方案四:

#include<stdio.h>

#include<stdlib.h>

#include<math.h>

int main()

{

int i;

for (i = 101; i <= 200; i+=2)   //因为100不是素数,因此能够从101开始

{

int j = 0;

for (j = 3; j <= sqrt(i); j+=2)

{

if (i%j == 0)

{

break;

}          //若是i%j=0说明i能够整除j,则跳出if语句

}

if (j>sqrt(i))

{

printf("%d  ", i);

}        

}

system("pause");

return 0;

}



写程序最原始的目的多是解决某个题或者某个实际问题,可是,当之后咱们进入社会,你要解决的就所有都是实际问题,那时候你面对的可能不单单只是解决它,而是要不断的优化它,要让成本更低,时间更短,效率更高,而这种优化解决问题的思路,要从写小程序开始培养。

相关文章
相关标签/搜索