#include <iostream>
using namespace std;
int prim(long long x) {
int s = 0;
for(long long i = 1; i <= x ; i++) {
if(x % i == 0) {
s++;
}
}
if(s == 2) {
return 1;
}
return 0;
}
int main() {
long long A = 600851475143;
long long i = 2;
long long C = 0;
while(i < (A/2)) {
while(A % i == 0 ) {
A = A/i;
if(i > C) {
C = i;
}
}
i++;
}
if(prim(C)) {
cout<<C;
}
return 0;
}
Questo è il codice che ho fatto per Project Euler problem 3. Non capisco perché quando lo eseguo, mi dà 1471. È una buona risposta ma non la più grande. Ma se cambio i = 1471
mi dà la risposta corretta 6857 ... Dov'è il problema? Perché non "automagicamente" mi dà la buona risposta 6857 ma 1471 quando parto da 2?Cosa c'è di sbagliato con questo codice per Project Euler # 3?
PS. So che non devo usare long long
ovunque.
Qualsiasi motivo per cui hai bisogno di tante linee? Questo mi costringe a scorrere di più, cosa che odio, soprattutto perché ho due barre di scorrimento l'una dentro l'altra, il che rende davvero scomodo. – Deduplicator
È stata eseguita una modifica con meno righe. – Whitebird
@Deduplicator puoi sempre chiedere a qualcuno di fare uno scrolling per te – 4pie0