要求素数,首先咱们要知道什么是素数,在解题的时候,不要急着去寻找方法解题,而是要先了解它的根本,才能够在遇到相似题的时候轻松面对解决小程序
质数(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;
}
结果以下:
优化方案一:
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;
}
写程序最原始的目的多是解决某个题或者某个实际问题,可是,当之后咱们进入社会,你要解决的就所有都是实际问题,那时候你面对的可能不单单只是解决它,而是要不断的优化它,要让成本更低,时间更短,效率更高,而这种优化解决问题的思路,要从写小程序开始培养。