最近看了一些素数的段子,于是编写了一个素数计算程序,太小了不过瘾,从500万开始计算,看看电脑的运算速度如何。
#include <stdio.h>
#define N 1000000000 //定义计算的最大值
#define startN 5000000 //从那个数开始查找素数
int main(void) {
long numb=startN,l,j;
while (numb<=N){
if (numb&0x0001) //剔除可以被2整除的数,运算减少一半
{
l=3;
while (l<=numb){
j=numb%l;
if (j==0 & l!=numb) break;
if ((j==0) & (l==numb)){
printf("%ld; ",numb);
}
l++;
}
}
numb++;
}
return 0;
}
代码在《IDE - Lightly》在线编译器上运行,速度还可以!
又把程序移植到STM32F030K6上,用串口反馈计算结果,也能计算,就是慢点!