Imam eno naloga napisat v javi program,ki izpiše vsa pitagorejska števila med 1 in 100. Mi lahko kdo malo svetuje, ker ne vem točno kako začeti.
function jePrastevilo($neko_stevilo) {
// ce je manjse ali enako 1
if($neko_stevilo <= 1) return false;
// ce je 2
elseif($neko_stevilo == 2) return true;
// ce je sodo (in razlicno od 2)
elseif($neko_stevilo % 2 == 0) return false;
// drugace pa preveri
else {
for($x = 3; $x <= ceil(sqrt($neko_stevilo)); $x+=2) {
// obstaja deljitelj -> ni prastevilo
if($neko_stevilo % $x == 0) return false;
}
// ni deljitelja -> je prastevilo
return true;
}
}
Citat:
Uporabnik mihi pravi:
Pitagorejska števila niso isto kot praštevila.
public class Pitagorejska {
public static void main(String[] args) {
int doStevila = 100;
int stTrojic = 0;
for(int c = 1; c <= doStevila; c++) {
for(int b = 1; b < c; b++) {
for(int a = 1; a <= b; a++) {
if((a*a + b*b) == c*c) {
System.out.println("(" + a + ", " + b + ", " + c + ")");
stTrojic++;
}
}
}
}
System.out.println("Stevilo trojic: " + stTrojic);
}
}
( 3, 4, 5) ( 5, 12, 13) ( 7, 24, 25) ( 8, 15, 17)
( 9, 40, 41) (11, 60, 61) (12, 35, 37) (13, 84, 85)
(16, 63, 65) (20, 21, 29) (28, 45, 53) (33, 56, 65)
(36, 77, 85) (39, 80, 89) (48, 55, 73) (65, 72, 97)
from math import *
def SkupniImenovalec(a,b):
while b!=0:
r=a%b
a=b
b=r
return a
def Pitagora(n):
i=0
for c in range(2,n):
for b in range(1,c):
a=sqrt(c*c-b*b)
if a==int(a) and a<b and SkupniImenovalec(b, int(a))==1:
print int(a),b,c
i+=1
print i
Pitagora(100)