Δημοσιεύτηκε: 04 Ιούλ 2012, 16:51
από stamatiou
migf1 έγραψε:
UnKnown96 έγραψε:MigF1, άψογος όπως πάντα :)
Ευχαριστώ!

Τίποτα βρε συ :)

Η λύση μου στο Project Euler - Problem #5 (σε C)
Project Euler, Problem #5 έγραψε:
2520 is the smallest number that can be divided by each of the numbers from 1 to 10 without any remainder.

What is the smallest positive number that is evenly divisible by all of the numbers from 1 to 20?


Νορμάλ λύση:
Spoiler: show
Κώδικας: Επιλογή όλων

#include <stdio.h>
int divisible_byrange(unsigned long int num, int low, int high)
{
int broken = 0; // boolean false
register int i;
for (i=low; !broken && i < high+1; i++)
broken = (num % i) != 0;
return broken;
}

int main( void )
{
unsigned long int num = 0;
for ( num=1; divisible_byrange(num, 1, 10); num++)
;
printf("%ld\n", num);
return 0;
}

Παπατζίδικη λύση :lol:
Spoiler: show
Κώδικας: Επιλογή όλων

#include <stdio.h>
int main( void )
{
register int i, broken = 0; // boolean false
unsigned long int num = 0;

for ( num=1; !broken; num++) {
for (i=1; !(broken=(num % i) != 0) && i < 20; i++)
;
broken = !broken;
}
printf("%ld\n", --num);
return 0;
}


Η λύση σου είναι ίδια με αυτήν εδώ;
Spoiler: show
Κώδικας: Επιλογή όλων
#include <stdio.h>

#define LIMIT 20


int bruteforce(void) {
int i, num;

for(num = 1; ; num++) {
printf("%d ", i);
for(i = 1; i <= LIMIT && (num % i == 0); i++)
;

if(i == LIMIT + 1)
return num;
}

return 0;
}

int main(void) {
printf("%d\n", bruteforce());
return 0;
}

Επειδή η δικιά μου παίρνει 15 λεπτά!