4049 - N Div N Len
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>