用筛选法求100之内的素数。
素数:只能被1和本省整除的数。
筛选法思路:将自然数1~100按顺序列成一张表,然后逐个判断它们是否素数。
具体做法:
1。先将1去掉。
2。用2去除它后面的各个数,把能被2整除的数去掉。
3。用3去除它后面的各个数,把能被3整除的数去掉。
4。分别用4、5……各数去除它后面的数,去除相应的数。
5。剩下的就是素数。
*/
#include <stdio.h>
#include <math.h>
void main()
{
int i,j;
int prime_flag[101];
for (i = 1; i <= 100; i++)
{
prime_flag[i] = 1;
}
for (i = 2; i <= 50; i++)
{
if (prime_flag[i] == 0)
{
continue;
}
for (j = i + 1; j <= 100; j++)
{
if (prime_flag[j] && j % i == 0)
{
prime_flag[j] = 0;
}
}
}
for (i =2; i <= 100; i++)
{
if (prime_flag[i])
{
printf("get a prime: %d\n", i);
}
}
}
素数:只能被1和本省整除的数。
筛选法思路:将自然数1~100按顺序列成一张表,然后逐个判断它们是否素数。
具体做法:
1。先将1去掉。
2。用2去除它后面的各个数,把能被2整除的数去掉。
3。用3去除它后面的各个数,把能被3整除的数去掉。
4。分别用4、5……各数去除它后面的数,去除相应的数。
5。剩下的就是素数。
*/
#include <stdio.h>
#include <math.h>
void main()
{
int i,j;
int prime_flag[101];
for (i = 1; i <= 100; i++)
{
prime_flag[i] = 1;
}
for (i = 2; i <= 50; i++)
{
if (prime_flag[i] == 0)
{
continue;
}
for (j = i + 1; j <= 100; j++)
{
if (prime_flag[j] && j % i == 0)
{
prime_flag[j] = 0;
}
}
}
for (i =2; i <= 100; i++)
{
if (prime_flag[i])
{
printf("get a prime: %d\n", i);
}
}
}
浙公网安备 33010602011771号