Kod był wyświetlany 3310 razy.
/*
Name: Liczba antypierwsze
Copyright: GPL GNU
Date: 02-11-09 09:34
Description:
Liczbę antypierwszą definiujemy jako liczbę, która ma więcej
dzielników niż każda dodatnia liczba całkowita mniejsza od niej.
Kolejnymi liczbami antypierwszymi są: 1 (1 dzielnik),
2 (2 dzielniki), 4 (3 dzielniki), 6 (4 dzielniki), 12
(6 dzielników) itd.*/
#include <iostream>
#include <fstream>
using namespace std;
void liczba( int n)
{
int k;
int x=0;
ofstream lista;
lista.open("b.txt");
int max = 0,ile,j;
for (k = 1; k <= n; k++)
{
ile = 0;
j = 1;
/* sprawdzamy czy liczba k jest liczba antypierwsza*/
while (j * j < k)
{
/* analizujemy liczby od 1 do pierwiastka z k w poszukiwaniu
dzielnikow */
if (k % j == 0)
ile += 2; /* mamy 2 dzielniki: j i k/j */
j++;
}
if (j * j == k) /* mamy dzielnik - pierwiastek z k */
ile++;
if (ile > max)
{
/* liczba jest antypierwsza */
++x;
max = ile;
cout<<k<<"\t";
lista<<k<<"; " ;
}
}
cout<<"\n\n\tLiczb antypierwszych jest: "<<x;
lista.close();
}
int main()
{
int n;
cout<<"\n\n\tPodaj gorny kres zbioru: ";
cin>>n;
cout<<"\n\n";
liczba(n);
cin.ignore();
getchar();
return 0;
}
Pobierz plik tekstowy