題目:求1~1000的質數(素數)
思路:素數、即質數,是在大于1的整數中隻能被1和其自身整除的數。檢查一個正整數N是否為素數,最簡單的方法就是試除法,将該數N用小于等于根号N的所有素數去試除,若均無法整除,則N為素數。
代碼:
#include <stdio.h>
#include <math.h>
#define MAXSIZE 1000
int main()
{
int prime[500];
int size = 0;
int index = 0;
int isGet = 0;
int sqrt_value = 0;
int prime_index = 0;
printf("1~1000的素數: ");
prime[0] = 2;
prime[1] = 3;
size = 2;
index = 4;
for(;index < MAXSIZE;index ++)
{
sqrt_value = sqrt(index);
prime_index = 0;
isGet = 1;
while((prime_index < size)&& (prime[prime_index] <= sqrt_value))
{
if(index % prime[prime_index] == 0)
{
isGet = 0;
break;
}
prime_index ++;
}
if(isGet == 1)
{
prime[size] = index;
size ++;
}
}
for(prime_index = 0;prime_index < size;prime_index++)
{
printf("%d ",prime[prime_index]);
}
printf("\n共%d個.\n",size);
return 0;
}