用最高效的方法get10个素数
本程序构建isPrime函数,判断是否为素数。判断是否能被已知的且<key的素数整除,如果能,则返回0,即不是素数。通过调试区,能够观察素数存储值数组prime的情况。
#include <stdio.h>
int isPrime(int key, int knownPrimes[], int numberOfKnownPrimes);
int main()
{
const int number = 10;
int prime[10] = {2}, count = 1, i = 3;
{
printf("Debug:\n\t\t");//调试区
for (int i = 0; i < number;i++)
printf("%d\t", i);
printf("\n");
}
while (count<number)
{
if(isPrime(i,prime,count))
{
prime[count++] = i;
}
{
printf("i=%d\tcnt=%d\t", i, count);//调试区
for (int i = 0; i < number;i++)
{
printf("%d\t", prime[i]);
}
printf("\n");
}
i++;
}
printf("Result:\n");
for (i = 0; i < number;i++)
{
printf("%d", prime[i]);
if((i+1)%5)
printf("\t");
else printf("\n");
}
return 0;
}
int isPrime(int key,int knownPrime[],int numberOfKnowPrimes)
{
int ret = 1;
for (int i = 0; i < numberOfKnowPrimes;i++)
{
if(key%knownPrime[i]==0)
{
ret = 0;
break;
}
}
return ret;
}
运行结果
