Challenge for you... - Printable Version +- QB64 Phoenix Edition (https://staging.qb64phoenix.com) +-- Forum: QB64 Rising (https://staging.qb64phoenix.com/forumdisplay.php?fid=1) +--- Forum: Code and Stuff (https://staging.qb64phoenix.com/forumdisplay.php?fid=3) +---- Forum: Programs (https://staging.qb64phoenix.com/forumdisplay.php?fid=7) +---- Thread: Challenge for you... (/showthread.php?tid=1629) |
RE: Challenge for you... - Petr - 04-20-2023 That formula in the first post - that's exactly the reason to hate formulas. Basically, it's like trying to write something simple horribly in maximum complicated form. @BPlus - I haven't dealt with factorials so far - and I was thinking - why are you solving it in the form of strings. Then wrote it my way and understood. For the first time in my life, have exhausted the limit for the largest data type in QB64 - FLOAT. Yeah, so - you already know. That's why you're doing it right! My function for calculating factorial is simple: Code: (Select All) Function CalcFac## (value##) but factorial 500 is over limit for this function. Result number is tooooo high. RE: Challenge for you... - Jack - 04-20-2023 (04-20-2023, 07:44 PM)Petr Wrote: actually it's well within range, the problem is that the print statement converts the number to double RE: Challenge for you... - Petr - 04-20-2023 @Jack It's not There will be an overflow there. I use Print Using to display the result, unfortunately we differ with the BPlus result somewhere around 22 orders of magnitude (this is the first time I wrote something like this, I don't know, one of the functions will probably do the rounding, either mine or the BPlus function. But what's interesting is that the ascii characters are printed in the number on overflow - I am attaching the source, note the repetition of the number series after overflow. Code: (Select All) Print Using "##############################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################"; CalcFac(500) RE: Challenge for you... - Kernelpanic - 04-20-2023 So go through the factorial until you find the first 100 prime numbers? - There's an easier way. First the prime numbers: . . . and now the factorial from it: RE: Challenge for you... - bplus - 04-20-2023 Yes for _Float you can only have around first 16 digits that are accurate, not good for exact factorials 1000's of digits long ;( I am tempted to try this because I did add Power to my String Math routines trouble is I don't have COS and I am afraid Power with unlimited digits would take days to run a calculation ;( RE: Challenge for you... - bplus - 04-20-2023 (04-20-2023, 08:34 PM)Kernelpanic Wrote: So go through the factorial until you find the first 100 prime numbers? - There's an easier way. Yes we all know an easier way to calculate the first 100 Primes, just about any way that gets Primes is easier than Eric's forumla he pointed to. The point is to try and get Primes with that dang very impractical formula! That formula is where the factorial thing is coming from, look at the first post in this thread again. RE: Challenge for you... - Kernelpanic - 04-20-2023 (04-20-2023, 06:34 PM)bplus Wrote: Here is 500! curtesy of bplus string math Something seems wrong there, doesn't it? RE: Challenge for you... - Kernelpanic - 04-20-2023 Quote:The point is to try and get Primes with that dang very impractical formula! That formula is where the factorial thing is coming from, look at the first post in this thread again. I got that now understand . . . well, it's a task for evenings when you're out of a bottle of wine. RE: Challenge for you... - bplus - 04-20-2023 (04-20-2023, 08:39 PM)Kernelpanic Wrote:(04-20-2023, 06:34 PM)bplus Wrote: Here is 500! curtesy of bplus string math I might of miscalc digits but it matches exactly this source: https://www.thelearningpoint.net/home/mathematics/factorial/factorial-500 Quote:500! = 1220136825991110068701238785423046926253574342803192842192413588385845373153881997605496447502203281863013616477148203584163378722078177200480785205159329285477907571939330603772960859086270429174547882424912726344305670173270769461062802310452644218878789465754777149863494367781037644274033827365397471386477878495438489595537537990423241061271326984327745715546309977202781014561081188373709531016356324432987029563896628911658974769572087926928871281780070265174507768410719624390394322536422605234945850129918571501248706961568141625359056693423813008856249246891564126775654481886506593847951775360894005745238940335798476363944905313062323749066445048824665075946735862074637925184200459369692981022263971952597190945217823331756934581508552332820762820023402626907898342451712006207714640979456116127629145951237229913340169552363850942885592018727433795173014586357570828355780158735432768888680120399882384702151467605445407663535984174430480128938313896881639487469658817504506926365338175055478128640000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 RE: Challenge for you... - Jack - 04-20-2023 @Petr Code: (Select All) $Console:Only Quote:1.979261890105010055F+4930 I fixed my version of QB64 so it will print _Float without problems |