hananetsdi
Messages postés13Date d'inscriptionlundi 31 octobre 2005StatutMembreDernière intervention18 novembre 2005
-
16 nov. 2005 à 11:55
Anthed
Messages postés152Date d'inscriptiondimanche 20 février 2005StatutMembreDernière intervention17 janvier 2014
-
19 nov. 2005 à 01:07
bonjour tt le monde.
je ss une débutante en java et je souhaite avoire de l'aide.voila deux exemples d'exercices que je veut savoire la méthode de les résoudres.
1.je souhaite ecrire un programme java de calcul des n premiers nombres parfaits.un nombre est dit parfait s'il est égal a la somme de des diviseurs,1 compris.
2.on souhaite ecrire un programme java de calcul et d'affichage des n premiers nombres premiers.un nombre entier est premier s'il n'est divisible que par 1 et par lui meme.on opérera une implimentation avec des boucles for imbriquées.
Anthed
Messages postés152Date d'inscriptiondimanche 20 février 2005StatutMembreDernière intervention17 janvier 20143 19 nov. 2005 à 01:07
Hello Miss
Je t'envoie un exemple de génération d'un fichier avec tous les nombres de 1 à N, avec, pour chacun sa décomposition en facteurs premiers (ou P s'il est premier). Ca fait un peu plus que prévu, je te laisse le soin de faire le tri. Ceci ne répond qu'à 1 de tes 2 questions mais l'autre est basée sur le même principe.
private final static int MAX = 500000;
private final static int MAX_LENGTH = 4;
private final static String FILE = "le_chemin_de_ton_choix\\prime.txt";
private static StringBuffer sb;
public static void main(String[] args)
{
sb = new StringBuffer(MAX * 5);
analyse(MAX);
save();
}
private static int search(int max)
{
Vector primeVector = new Vector(max/2);
int maxSearch;
boolean isPrime;
int j;
int size;
for (int i=2 ; i<max ; i++)
{
maxSearch = (new Double(Math.sqrt(i))).intValue();
isPrime = true;
j = 0;
size = primeVector.size();
while ((isPrime) && (j<size))
{
isPrime = isPrime && (i % ((Integer)primeVector.elementAt(j)).intValue() != 0);
j++;
}
if (isPrime)
{
primeVector.add(new Integer(i));
}
}
if (!primeVector.isEmpty())
{
System.out.println(" -> " + ((Integer)primeVector.lastElement()).intValue());
}
return primeVector.size();
}
private static void analyse(int max)
{
Vector primeVector = new Vector(max/2);
int maxSearch;
boolean isPrime;
int j;
int size;
int r;
int c;
String result;
for (int i=2 ; i<=max ; i++)
{
maxSearch = (new Double(Math.sqrt(i))).intValue();
isPrime = true;
j = 0;
size = primeVector.size();
while ((isPrime) && (j<size))
{
isPrime = isPrime && (i % ((Integer)primeVector.elementAt(j)).intValue() != 0);
j++;
}
if (isPrime)
{
primeVector.add(new Integer(i));
sb.append(getSpacedInt(i)).append(" : P\n");
}
else
{
result = "";
r = i;
j = 0;
c = ((Integer)primeVector.elementAt(j)).intValue();
while ((j < size) && (r >= c))
{
if (r % c == 0)
{
result += c + ".";
r = r / c;
}
else
{
j++;
c = ((Integer)primeVector.elementAt(j)).intValue();
}
}
sb.append(getSpacedInt(i)).append(" : ")
.append(result.substring(0, result.length()-1)).append("\n");
}
}
}
private static String getSpacedInt(int value)
{
String result = "" + value;
while (result.length() < MAX_LENGTH)
{
result = " " + result;
}
return result;
}