mersenneforum.org

mersenneforum.org (https://www.mersenneforum.org/index.php)
-   FactorDB (https://www.mersenneforum.org/forumdisplay.php?f=94)
-   -   The "Hey YOU" Thread (https://www.mersenneforum.org/showthread.php?t=18489)

chris2be8 2016-07-16 15:51

I've started running a script to go through the numbers with status unknown in factordb and add algebraic factors if factordb doesn't know about them. I *think* I've added long enough delays between requests to stop it overloading factordb. Is one request per second reasonable?

It'll probably take more than 6 months to go through all 41 million such numbers. So far I'm partly factoring about 9% of them.

When it's finished I could run it against composites with no known factors. I'd need to update it to stop it trying to add too many factors that are already known though.

Does anyone think they would find this useful?

Chris

chris2be8 2016-09-06 16:04

I decided to stop it once I'd reached 60,000 digit numbers. The tally is:

20,817,600 numbers checked.
1,023,341 numbers at least partly factored.
1,538 ended up fully factored.

There are probably some duplicates in there though.

I'll now start running against composites with no known factors. Which will take a few months. But should have more numbers end up fully factored, at least to start with.

Chris

henryzz 2016-09-07 09:56

[QUOTE=chris2be8;441740]I decided to stop it once I'd reached 60,000 digit numbers. The tally is:

20,817,600 numbers checked.
1,023,341 numbers at least partly factored.
1,538 ended up fully factored.

There are probably some duplicates in there though.

I'll now start running against composites with no known factors. Which will take a few months. But should have more numbers end up fully factored, at least to start with.

Chris[/QUOTE]

I assume that you are checking if a number would have algebraic factors even if the number has already had small factors removed.

chris2be8 2016-09-07 16:01

Correct. Eg: [code]
(6827^48+1)/29605130633466729757863645596968113368259830758158964079481474144706 (record 211, match 60) has 1 factor 6827^16+1
In postFactors url = http://factordb.com/index.php?id=1100000000585123211, factors = 6827^16+1
#### http://factordb.com/index.php?id=1100000000585123211 is fully factored ####
1 factor already known by factordb for record 211 (match 60)
[/code]
Chris

chris2be8 2016-10-21 20:30

Another "feature" I've just found, [url]http://factordb.com/listtype.php?t=3[/url] says you can skip a maximum of 50000 numbers. If you ask it to skip more it only skips 50000 numbers. So if there are more than 50000 numbers with a given number of digits the rest can't be displayed.

That caught my script out. There are more that 50000 309 digit numbers in factordb. And it didn't notice that when it asked to skip 50012, 50112, 50212, etc numbers it was always getting the same list of numbers. And I didn't notice for a few hours either.

I've patched the script to skip to the next number of digits once it's checked the first 50100 numbers (I read 100 at a time so can get that far). Which at least lets it carry on.

Chris

EdH 2016-10-21 21:20

[QUOTE=chris2be8;445517]Another "feature" I've just found, [URL]http://factordb.com/listtype.php?t=3[/URL] says you can skip a maximum of 50000 numbers. If you ask it to skip more it only skips 50000 numbers. So if there are more than 50000 numbers with a given number of digits the rest can't be displayed.

That caught my script out. There are more that 50000 309 digit numbers in factordb. And it didn't notice that when it asked to skip 50012, 50112, 50212, etc numbers it was always getting the same list of numbers. And I didn't notice for a few hours either.

I've patched the script to skip to the next number of digits once it's checked the first 50100 numbers (I read 100 at a time so can get that far). Which at least lets it carry on.

Chris[/QUOTE]
Would you be able to access 4900 more if you asked for 5000 and pulled out sections of 100 for your script?

chalsall 2016-10-21 21:33

[QUOTE=EdH;445520]Would you be able to access 4900 more if you asked for 5000 and pulled out sections of 100 for your script?[/QUOTE]

Not quite sure what you are trying to say there.

Does this translate into mass or money?

chris2be8 2016-10-22 17:26

[QUOTE=EdH;445520]Would you be able to access 4900 more if you asked for 5000 and pulled out sections of 100 for your script?[/QUOTE]

Yes, it is possible and I've updated my script to do it. But there are more than 55000 309 digit numbers in factordb so I still can't get at the rest.

Chris

xilman 2016-10-22 17:54

[QUOTE=chris2be8;445541]Yes, it is possible and I've updated my script to do it. But there are more than 55000 309 digit numbers in factordb so I still can't get at the rest.

Chris[/QUOTE]Writing from a position of profound ignorance here: is it possible to ask for all 309-digit numbers which begin with (or end with) a specific string of digits?

EdH 2016-10-22 18:55

[QUOTE=chris2be8;445541]Yes, it is possible and I've updated my script to do it. But there are more than 55000 309 digit numbers in factordb so I still can't get at the rest.

Chris[/QUOTE]
I notice, looking at the distribution graph, that there is a spike that goes up a couple thousand above 55000 right at 309 digits. There is another larger area up a few digits that encompasses a range above 55000.

I guess we'll just have to factor some of those 309 digit composites...

EdH 2016-10-22 20:56

Chris,

Depending on how bad you want those "invisible" 309s, this might allow you to find them. It's not very professional and I'm not sure it will even work, but let me know if it's of use:

bash script:
[code]
#!/bin/bash/

IFS="
"

# index of last known** 309 digit composite
index=1100000000871347918
let indexEnd=${index}+100

while [ $index -lt $indexEnd ]
do
seek=http://factordb.com/index.php?id=$index
wget $seek

exec <${seek:20}
while read line
do
case $line in
*"query"*) comp1=${line};;
esac
done

rm ${seek:20}

comp2=${comp1##*=}
composite=${comp2:1:${#comp2}-3}
compLength=${#composite}

if [ $compLength -eq 309 ]
then
echo $index >>indices309
fi

let index=${index}+1
done
[/code]** By known, I'm referring to the last visible one initially. Then it can be changed to the new last known (now 1100000000871348012) after a run.

It can put a bit of a pull on the db, but here is what it returned using the values in the above example:
[code]
1100000000871347918
1100000000871347925
1100000000871347943
1100000000871347973
1100000000871348009
1100000000871348011
1100000000871348012
[/code]I think, other than the first one, these are all currently unavailable to you.

edit: This version works on my Fedora 22 under its bash version. There might be slight differences in the string manipulations. I hope you can catch and fix those, if necessary.

edit: Also note there is a file removal line that deletes the page retrieved by the wget line. If that removal line is of concern, it can be commented or removed and no files will be deleted.

Ed


All times are UTC. The time now is 06:09.

Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2021, Jelsoft Enterprises Ltd.