x 理系フリマ831にあるよ
目的
素数を求めて時間を測って遊ぶ
2から開始しする
割るのは、2からn-1まで割る
ちゃんと割ってあまりを求める
z = x / y
a = x - ( z * y )
いろいろ
Arduino UNOより速い
結果
//sosuu_C011_1
void setup() {
//00:PB7
//01:PC14
//1x:Reserved
SYSCFG->CFGR3 = SYSCFG->CFGR3 | 0b01;
Serial.setTx(PC14);
Serial.setHalfDuplex();
Serial.begin(9600);
}//setup
void loop() {
int s[100];
for (int ii = 0; ii < 100; ii++) {
s[ii] = 0;
}//for
unsigned long time;
int a=1;//work
int pp = 0;
//s[pp++] = 1;//debug
//s[pp++] = 2;//debug
Serial.println("START>>");
time = millis();
for (int ii = 2; ii < (100 + 1); ii++) {
//Serial.print('('); //debug
//Serial.print(ii); //debug
//Serial.print(')'); //debug
//Serial.println(); //debug
for (int jj = 2; jj < (ii); jj++) {
//Serial.print('['); //debug
//Serial.print(jj); //debug
//Serial.print(']'); //debug
a = ii / jj;
a = ii - (a * jj);
if ( a == 0) {
//Serial.print('*');//debug
break;
}//if
}//for
if (a != 0) {
//Serial.print('@');
s[pp++] = ii;
}
//Serial.println();//debug
}//for
time = millis() - time;
Serial.print("millis=");
Serial.println((int)time);
int yy = 0;
while (s[yy] != 0) {
Serial.print(s[yy]);
Serial.print(',');
yy++;
}//while
Serial.println();
Serial.println("<<END");
delay(3000);
//while (1) {} //debug
}//loop