# D18992: Kbruch exercise mode improvement

Thu Feb 14 03:08:26 GMT 2019

```cfeck added a comment.

Here is what I use:

/**
* All primes that fit into 8 bits
*
*/
const unsigned char primesTable8[54] = {
2,   3,   5,   7,  11,  13,  17,  19,  23,
29,  31,  37,  41,  43,  47,  53,  59,  61,
67,  71,  73,  79,  83,  89,  97, 101, 103,
107, 109, 113, 127, 131, 137, 139, 149, 151,
157, 163, 167, 173, 179, 181, 191, 193, 197,
199, 211, 223, 227, 229, 233, 239, 241, 251
};

bool hasTwoHardPrimes(int f)
{
for (int j = 0; j < 3; ++j) {
int p = primesTable8[j];
while (f % p == 0) {
f /= p;
}
}
int pp = 1;
for (int j = 3; j < 54; ++j) {
int p = primesTable8[j];
if (f % p == 0) {
f /= p;
pp *= p;
}
}
return (pp > 90 || f > 90);
}

int main(int argc, char *argv[])
{
// 6 ... 16
int level = 10;
for (int i = 2; i <= 1 << level; ++i) {
if (isPrime(i) && i < 100 || !hasTwoHardPrimes(i)) {
printf("%d, ", i);
}
}
printf("\n");
}

if `hasTwoHardPrimes()` returns `true`, then I don't show the number for a factorization exercise. Note that this only works for numbers up to about 62500, but a 6th grader can/should factorize even large numbers such as 44100.

Feel free to update your table with numbers checked against this if you agree.

REVISION DETAIL
https://phabricator.kde.org/D18992

To: khanaasif, #kde_edu
Cc: cfeck, narvaez, apol
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/kde-edu/attachments/20190214/526676e6/attachment.html>
```