37 lines
738 B
Plaintext
37 lines
738 B
Plaintext
IntList primes = new IntList();
|
|
|
|
void setup() {
|
|
sieve(500);
|
|
int count = 0;
|
|
for (int i = 2; i < 500; i++) {
|
|
if (primes.hasValue(i) && primes.hasValue(sumDigits(i))) {
|
|
print(i + " ");
|
|
count++;
|
|
}
|
|
}
|
|
println();
|
|
print("Number of additive primes less than 500: " + count);
|
|
}
|
|
|
|
int sumDigits(int n) {
|
|
int sum = 0;
|
|
for (int i = 0; i <= floor(log(n) / log(10)); i++) {
|
|
sum += floor(n / pow(10, i)) % 10;
|
|
}
|
|
return sum;
|
|
}
|
|
|
|
void sieve(int max) {
|
|
for (int i = 2; i <= max; i++) {
|
|
primes.append(i);
|
|
}
|
|
for (int i = 0; i < primes.size(); i++) {
|
|
for (int j = i + 1; j < primes.size(); j++) {
|
|
if (primes.get(j) % primes.get(i) == 0) {
|
|
primes.remove(j);
|
|
j--;
|
|
}
|
|
}
|
|
}
|
|
}
|