Diskuze: Urychleni algoritmu

Člen

Zobrazeno 16 zpráv z 16.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
zakomentuj riadky:
printf("Nalezeny pocet reseni: %lld\n", k);
a
printf("jsem v %lld procentech", i);
Zadal som naozaj veľké číslo (trvanie 95 sek) a tu je výstup:
zajimavy. co mas za CPU?
Intel(R)Core(TM)2 Duo CPU
[email protected]
2.83GHz 0,98GB RAM
muj os: ubuntu 13.10 x64
muj cpu: core i3 330m 2,13 GHz dvoujadro
vstup: 146305278845 868444855111 97899 408438
cas vypoctu: ?. jeste to neskoncilo
Ja to ale nevypisujem, ak si si nevšimol.
Tvoje zadanie trvalo 66 sek.
BTW
Možno by bolo zaujímavejšie správne čísla ulokladať do toho súboru a
potom ich z neho vypísať.
aha. tkze to nebude zdrojakem, ale nejakym vnejsim vlivem.
Zakomentoval si tie dva riadky, čo som ti písal?
zakomentoval. program znovu zkompiloval a furt nic...
Skús toto:
#include <stdio.h>
#include <stdlib.h>
long long int a, b, x, y, k=0, i=1;
int main(){
scanf("%lld %lld %lld %lld", &a, &b, &x, &y);
FILE *s;
s = fopen("reseni.txt", "w+");
printf("\npostup: \n\n");
long long int z = a/100;
long long int p = z*i;
do{
if((a%x)==0 && (a%y)==0){
k++;
}
if(a == p){
i++;
}
a++;
}while(a != b+1);
printf("\n%lld\n\n", k);
fprintf(s, "%lld", k);
fclose(s);
return 0;
}
Aj keď tie premenné
long long int a, b, x, y, k=0, i=1;
sú zbytočne globálne.
Doteraz som to testval na win xp, doma testnem na ubuntu 12.04.
uz nemusis, ale diky za pomoc.
predelal sem komplet zdrojak na toto a uz to fachci:
#include <stdio.h>
#include <stdlib.h>
gcd (long long int a, long long int b)
{
if (!b) return a;
return gcd(b, a % b);
}
int main (void){
long long int a, b, x, y, k, lcm;
FILE *s;
scanf("%lld %lld %lld %lld", &a, &b, &x, &y);
s = fopen("reseni.txt", "w+");
lcm = x * y / gcd(x, y);
k = b/lcm - a/lcm;
printf("\n%lld\n\n", k);
fprintf(s, "%lld", k);
return 0;
}
Zobrazeno 16 zpráv z 16.