Fortran has five * intrinsic data types* : INTEGER , REAL , COMPLEX , LOGICAL and CHARACTER . Each of those types can be additionally characterized by a * kind* . Kind, basically, defines internal representation of the type: for the three numeric types, it defines the precision and range, and for the other two, the specifics of storage representation. Thus, it is an abstract concept which models the limits of data types' representation; it is expressed as a member of a set of whole numbers (. it may be {1, 2, 4, 8} for integers, denoting bytes of storage), but those values are not specified by the Standard and not portable. For every type, there is a * default kind* , which is used if no kind is explicitly specified. For each intrinsic type, there is a corresponding form of * literal constant* . The numeric types INTEGER and REAL can only be signed (there is no concept of sign for type COMPLEX ).

From 1991-2005 I worked at this charity in IT, first as a programmer analyst, then as a dba, finally becoming the backup Unix Admin in 1998 and the full time Unix Admin in 2000. The organization ran its legacy fund raising systems on a pair of D class HP-UX systems. The back end database was Software AG adabas. The user fund raising community wanted to have an sql like ability to look into the database and run queries. they wanted flexible use of strategic data. An attempt was made in early 1997 to install a sql front end, but it did not provide acceptable results.

A week date is a type of calendar which uses the year, week of the year, and day of the week to refer to to dates. In the ISO 8601 week date, the first week of the year is the week starting from Monday which contains January 4th. An ISO 8601 week date can thus have a different year number than the corresponding Gregorian date. The first week of the year is numbered 01 , and the first day of the week, Monday, is numbered 1 . Weeks are written in YYYY-Www-D or YYYYWwwD format, where the upper case W is literal. The corresponding strftime literals are %G-W%V-%u and %GW%V%u .

This versions will give correct answers for n less than 341550071728321 and then reverting to the probabilistic form of the first solution. By selecting predetermined values for the a values to use instead of random values, the results can be shown to be deterministically correct below certain thresholds.

For 341550071728321 and beyond, I have followed the pattern in choosing a from the set of prime numbers.

While this uses the best sets known in 1993, there are better sets known , and at most 7 are needed for 64-bit numbers.

This versions will give correct answers for n less than 341550071728321 and then reverting to the probabilistic form of the first solution. By selecting predetermined values for the a values to use instead of random values, the results can be shown to be deterministically correct below certain thresholds.

For 341550071728321 and beyond, I have followed the pattern in choosing a from the set of prime numbers.

While this uses the best sets known in 1993, there are better sets known , and at most 7 are needed for 64-bit numbers.