The distinction between "computer architecture" and "computer organization" has become very fuzzy, if no completely confused or unusable. Computer architecture was essentially a contract with software stating unambiguously what the hardware does. The architecture was essentially a set of statements of the form "If you execute this instruction (or get an interrupt, etc.), then that is what happens. Computer organization, then, was a usually high-level description of the logic, memory, etc, used to implement that contract: These registers, those data paths, this connection to memory, etc.
Programs written to run on a particular computer architecture should always run correctly on that architecture no matter what computer organization (implementation) is used.
For example, both Intel and AMD processors have the same X86 architecture, but how the two companies implement that architecture (their computer organizations) is usually very different. The same programs run correctly on both, because the architecture is the same, but they may run at different speeds, because the organizations are different. Likewise, the many companies implementing MIPS, or ARM, or other processors are providing the same architecture - the same programs run correctly on all of them - but have very different high - level organizations inside them.
Answer:
year = int(input("Enter a year: "))
if (year % 4) == 0:
if (year % 100) == 0:
if (year % 400) == 0:
print(str(year) + " - leap year")
else:
print(str(year) +" - not a leap year")
else:
print(str(year) + " - leap year")
else:
print(str(year) + "- not a leap year")
Explanation:
*The code is in Python.
Ask the user to enter a year
Check if the <u>year mod 4</u> is 0 or not. If it is not 0, then the year is not a leap year. If it is 0 and if the <u>year mod 100</u> is not 0, then the year is a leap year. If the <u>year mod 100</u> is 0, also check if the <u>year mod 400</u> is 0 or not. If it is 0, then the year is a leap year. Otherwise, the year is not a leap year.
Three characteristics of an ideal encrytion scheme are:
1. The encryption sheme should be strong: the algorithm is imprevious to direct attack and attempts are derived.
2. The encryption scheme should create unique ciphertext from the same plaintext for each key permutation, among other traits.
3. It should take at least millions of years to break ideal encryption scheme, based on mathematical predictions.