WinFuture-Forum.de: Primzahlen Mal Anders.... - WinFuture-Forum.de

Zum Inhalt wechseln

Nachrichten zum Thema: Entwicklung
Seite 1 von 1

Primzahlen Mal Anders....


#1 Mitglied ist offline   Ossi 

  • Gruppe: aktive Mitglieder
  • Beiträge: 26
  • Beigetreten: 26. Juli 02
  • Reputation: 0

geschrieben 10. Januar 2007 - 19:21

Hallo,

ich kann leider ein Programm nicht verstehen. Es hat die Aufgabe die Primzahlen von 1 bis 99 in binärer Darstellung auszugeben.
Könntet ihr mir dabei behilflich sein?


Ossi


P.s.:Ich habe selbst ein Programm geschrieben, mit dem ich Primzahlen zwischen 1 und 1000 ausgeben kann. Leider verstehe ich das besagte Programm immernoch nicht.

Das "komische" Programm
/* PROGRAM christmas.c
 * TASK	don't know - confuse students?
 * AUTHOR  Henner Carl
 * DATE	17.12.2003
 * LICENSE This program is published under the terms and conditions of the
 *		 GPL (GNU Public License) :-)
 * PLEASE HELP! I MET SANTA CLAUS IN A DREAM. HE GAVE ME THIS PROGRAM,
 * BUT I DON'T KNOW WHAT IT'S GOOD FOR AND HOW IT MAY WORK!
 */

int x=1,xX[25]={},*X;
	
main(){
	
for((x=1);++x<=0X63;)
	  {
;
		for(X=xX;*X&&x%*X;X++);
			
		*X||/*Merry"*/scanf("%Xi\\X-Mas",*X=x);
		
		}
		
;
		
}
			  
scanf(X,x){;
	
	for(X=1<<15;putchar(X?X&x?'1':'0':'\n'),X;X>>=1)24;
	
	
	
	
	}


Mein Programm
#include <stdio.h>

int is_prime(int number);

int main()
{
   int i;

   for (i = 0; i <= 1000; i++)
	  if (is_prime(i))
		 printf("%d ", i);
   return 0;
}
/***************************************/
int is_prime(int number)
{
   int i;

   if (number == 0 || number == 1)
	  return 0;
   if (number % 2 == 0)
	  return number == 2;
   if (number % 3 == 0)
	  return number == 3;
   if (number % 5 == 0)
	  return number == 5;

   for (i = 7; i * i <= number; i += 2)
	  if (number % i == 0)
		 return 0;
   return 1;
}

0

Anzeige



#2 Mitglied ist offline   Rika 

  • Gruppe: aktive Mitglieder
  • Beiträge: 11.533
  • Beigetreten: 11. Juni 03
  • Reputation: 2
  • Geschlecht:Männlich

geschrieben 11. Januar 2007 - 01:31

xX=Array mit bereits gefundenen Primzahlen
x=aktuelle getestete Zahl
*X=oberster valider Index des Arrays

for((x=1);++x<=0X63;) // für alle Zahlen von 1 bis 99

for(X=xX;*X&&x%*X;X++); // teste, ob die Zahl durch alle bereits gefundenen Primzahlen teilbar ist

*X||/*Merry"*/scanf("%Xi\\X-Mas",*X=x); // wenn nein, dann speichere sie in dem Array, erhöhe den Index um 1 und gebe die Zahl aus (und übergib einen sinnlosen String, der ohnehin verworfen wird).

for(X=1<<15;putchar(X?X&x?'1':'0':'\n'),X;X>>=1)24; // Zähle X von 2^14 bis 1 in 2er-Division-Schritten runter (d.h. gehe alle Bitpositionen durch), teste ob das Bit in der Zahl gesetzt ist und gib das als 0 bzw. 1 aus. Und mache jeweils eine sinnlose Trivial-Berechnung "24".

Konnichiwa. Manga wo shitte masu ka? Iie? Gomenne, sonoyouna koto ga tabitabi arimasu. Mangaka ojousan nihongo doujinshi desu wa 'Clamp X', 'Ayashi no Ceres', 'Card Captor Sakura', 'Tsubasa', 'Chobits', 'Sakura Taisen', 'Inuyasha' wo 'Ah! Megamisama'. Hai, mangaka gozaimashita desu ni yuujin yori.
Eingefügtes Bild
Ja, mata ne!

(For sending email please use OpenPGP encryption and signing. KeyID: 0xA0E28D18)
0

#3 Mitglied ist offline   Ossi 

  • Gruppe: aktive Mitglieder
  • Beiträge: 26
  • Beigetreten: 26. Juli 02
  • Reputation: 0

geschrieben 11. Januar 2007 - 17:34

Danke für die Erklärung! Habs jetzt verstanden !
0

Thema verteilen:


Seite 1 von 1

1 Besucher lesen dieses Thema
Mitglieder: 0, Gäste: 1, unsichtbare Mitglieder: 0