#include <iostream>
using namespace std;
long long number = 600851475143;
int del = 0;
int main(int argc, char const *argv[])
{
for (int i = 2; i < number; i++)
{
if (number % i == 0)
{
for (int j = 2; j < i; j++)
{
if (i % j == 0)
break;
else
del = i;
}
}
}
cout << del << endl;
return 0;
}
i < number
в цикле будет всегда выполнятся - потому что ну не может int i быть больше number.del = i
выполнится для любого j, такого что i на него не делится. Т.е. если i=6, то при j=5 вы dеl перезапишите. Вам надо в цикле устанавливать bool flag. И, после цикла на него смотреть.