4049 - N Div N Len: Difference between revisions
Paul Ungur (talk | contribs) |
Paul Ungur (talk | contribs) |
||
Line 26: | Line 26: | ||
==Rezolvare== | ==Rezolvare== | ||
<syntaxhighlight lang="python" line="1"> | <syntaxhighlight lang="python" line="1"> | ||
n | def validate_input(n): | ||
if not isinstance(n, int) or n < 1 or n > 10**5: | |||
return False | |||
return True | |||
def find_k(n): | |||
k = int( | m = len(str(n)) | ||
k = [1] + [0] * (m - 1) | |||
for i in range(m - 2, -1, -2): | |||
k[i], k[i+1] = 1, 0 | |||
while int(''.join(map(str, k))) % n != 0: | |||
for i in range(m - 1, -1, -1): | |||
if k[i] == 0: | |||
k[i] = 1 | |||
break | |||
else: | |||
k[i] = 0 | |||
return int(''.join(map(str, k))) | |||
def main(): | |||
n = int(input("Introduceti n: ")) | |||
k | if not validate_input(n): | ||
print("Date de intrare incorecte") | |||
return | |||
k = find_k(n) | |||
print(k) | |||
if __name__ == '__main__': | |||
main() | |||
</syntaxhighlight> | </syntaxhighlight> |
Revision as of 15:22, 24 March 2023
Cerința:
Se dă un număr natural n. Găsiți orice număr k de exact n cifre care este divizibil cu n.
Date de intrare:
Se citește numărul n.
Date de ieșire:
Se afișează numărul k.
Restricții și precizări:
1≤n≤10^5 Dacă există mai multe soluții posibile, se acceptă oricare. Pentru 20 de puncte, n≤6 Pentru 40 de puncte, n≤9 Pentru 50 de puncte, n≤18
Exemplu:
Intrare 3 Ieșire 123
Explicație:
Numărul 123 are 3 cifre și este divizibil cu 3.
Rezolvare
<syntaxhighlight lang="python" line="1"> def validate_input(n):
if not isinstance(n, int) or n < 1 or n > 10**5: return False return True
def find_k(n):
m = len(str(n)) k = [1] + [0] * (m - 1) for i in range(m - 2, -1, -2): k[i], k[i+1] = 1, 0 while int(.join(map(str, k))) % n != 0: for i in range(m - 1, -1, -1): if k[i] == 0: k[i] = 1 break else: k[i] = 0 return int(.join(map(str, k)))
def main():
n = int(input("Introduceti n: ")) if not validate_input(n): print("Date de intrare incorecte") return k = find_k(n) print(k)
if __name__ == '__main__':
main()
</syntaxhighlight>