<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.universitas.ro/index.php?action=history&amp;feed=atom&amp;title=3930_-_Perioada1</id>
	<title>3930 - Perioada1 - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.universitas.ro/index.php?action=history&amp;feed=atom&amp;title=3930_-_Perioada1"/>
	<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=3930_-_Perioada1&amp;action=history"/>
	<updated>2026-05-01T08:23:48Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.42.1</generator>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=3930_-_Perioada1&amp;diff=8744&amp;oldid=prev</id>
		<title>Ramona Dragoș: Pagină nouă: == Enunt == Fie N un număr natural cu proprietatea că (N, 10) = 1. Să se determine lungimea perioada T a fracţiei zecimale periodice simple 1N  == Cerința == Să se scrie un program care citeşte numărul natural N şi determină numărul T cu semnificaţia de mai sus.  == Date de intrare == Fişierul de intrare perioada1in.txt conţine pe prima linie numărul natural N.  == Date de ieșire == Fişierul de ieşire perioada1out.txt va conţine pe prima linie numărul T cu...</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=3930_-_Perioada1&amp;diff=8744&amp;oldid=prev"/>
		<updated>2024-01-01T15:48:44Z</updated>

		<summary type="html">&lt;p&gt;Pagină nouă: == Enunt == Fie N un număr natural cu proprietatea că (N, 10) = 1. Să se determine lungimea perioada T a fracţiei zecimale periodice simple 1N  == Cerința == Să se scrie un program care citeşte numărul natural N şi determină numărul T cu semnificaţia de mai sus.  == Date de intrare == Fişierul de intrare perioada1in.txt conţine pe prima linie numărul natural N.  == Date de ieșire == Fişierul de ieşire perioada1out.txt va conţine pe prima linie numărul T cu...&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== Enunt ==&lt;br /&gt;
Fie N un număr natural cu proprietatea că (N, 10) = 1.&lt;br /&gt;
Să se determine lungimea perioada T a fracţiei zecimale periodice simple 1N&lt;br /&gt;
&lt;br /&gt;
== Cerința ==&lt;br /&gt;
Să se scrie un program care citeşte numărul natural N şi determină numărul T cu semnificaţia de mai sus.&lt;br /&gt;
&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Fişierul de intrare perioada1in.txt conţine pe prima linie numărul natural N.&lt;br /&gt;
&lt;br /&gt;
== Date de ieșire ==&lt;br /&gt;
Fişierul de ieşire perioada1out.txt va conţine pe prima linie numărul T cu semnificaţia de mai sus.&lt;br /&gt;
&lt;br /&gt;
== Restricții și precizări ==&lt;br /&gt;
*1 &amp;amp;les; N &amp;amp;les; 1012&lt;br /&gt;
*N şi 10 prime între ele&lt;br /&gt;
== Exemplu 1 ==&lt;br /&gt;
;perioada1in.txt&lt;br /&gt;
:3&lt;br /&gt;
;perioada1out.txt&lt;br /&gt;
:1&lt;br /&gt;
== Exemplu 2 ==&lt;br /&gt;
;perioada1in.txt&lt;br /&gt;
:21&lt;br /&gt;
;perioada1out.txt&lt;br /&gt;
:6&lt;br /&gt;
== Exemplu 3 ==&lt;br /&gt;
;perioada1in.txt&lt;br /&gt;
:31&lt;br /&gt;
;perioada1out.txt&lt;br /&gt;
:15&lt;br /&gt;
== Exemplu 4 ==&lt;br /&gt;
;perioada1in.txt&lt;br /&gt;
:363&lt;br /&gt;
;perioada1out.txt&lt;br /&gt;
:22&lt;br /&gt;
== Exemplu 5 ==&lt;br /&gt;
;perioada1in.txt&lt;br /&gt;
:0&lt;br /&gt;
;perioada1out.txt&lt;br /&gt;
:Numărul N nu respectă restricțiile impuse.&lt;br /&gt;
== Rezolvare ==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line&amp;gt;&lt;br /&gt;
#3930 - Perioada1&lt;br /&gt;
def find_period(N):&lt;br /&gt;
    remainder = 1 % N&lt;br /&gt;
    seen_remainders = set()&lt;br /&gt;
    position = 0&lt;br /&gt;
&lt;br /&gt;
    while remainder not in seen_remainders:&lt;br /&gt;
        seen_remainders.add(remainder)&lt;br /&gt;
        position += 1&lt;br /&gt;
        remainder = (remainder * 10) % N&lt;br /&gt;
&lt;br /&gt;
    return position&lt;br /&gt;
&lt;br /&gt;
def main(input_file, output_file):&lt;br /&gt;
    try:&lt;br /&gt;
        with open(input_file, &amp;#039;r&amp;#039;) as file:&lt;br /&gt;
            N = int(file.readline().strip())&lt;br /&gt;
            if 1 &amp;lt;= N &amp;lt;= 10**12 and N % 10 != 0:&lt;br /&gt;
                T = find_period(N)&lt;br /&gt;
                with open(output_file, &amp;#039;w&amp;#039;) as output:&lt;br /&gt;
                    output.write(str(T) + &amp;#039;\n&amp;#039;)&lt;br /&gt;
            else:&lt;br /&gt;
                print(&amp;quot;Numărul N nu respectă restricțiile impuse.&amp;quot;)&lt;br /&gt;
    except Exception as e:&lt;br /&gt;
        print(f&amp;quot;Nu au fost respectate cerințele impuse: {str(e)}&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
if __name__ == &amp;quot;__main__&amp;quot;:&lt;br /&gt;
    main(&amp;quot;perioada1in.txt&amp;quot;, &amp;quot;perioada1out.txt&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ramona Dragoș</name></author>
	</entry>
</feed>