Project Euler Algoritma Sorusu Çözümü | 8 Adet | Python ve Golang Dillerinde Çözüm

0x1D

Kıdemli Üye
23 Nis 2020
2,652
78
MARS


logo_default.png


Merhabalar, bugün bazı Project Euler sorularını ve diğer birkaç algoritma sorusunu çözeceğim çözeceğim. Öncelikle soruyu göreceğiz ve nasıl bir algoritmayla çözeceğimizi anlatacağım ve bu algoritmayı Python ve Golang dillerinde yazacağım.


İçerik

1) Soruyu göreceğiz.
2) Nasıl çözeceğimizi anlatacağım.
3) Python ile yazacağım.
4) GoLang ile yazacağım.


Soru 1


YBCjAj.jpg



1.1) Sorumuzu görelim:
Project Euler' Alıntı:
If we list all the natural numbers below 10 that are multiples of 3 or 5, we get 3, 5, 6 and 9. The sum of these multiples is 23.

Find the sum of all the multiples of 3 or 5 below 1000.

10'un altındaki 3 ve 5'in katı olan doğal sayıları sıralarsak 3,5,6,9 elde ederiz. Bunların toplamı 23'tür. 1000'in altındaki 3 ve 5'in katları olan sayıların toplamını bulunuz.

YBCptI.jpg


1.2) Öncelikle bir döngü açmalıyız ki gideceğimiz max sayıya kadar olan doğal sayılar ile işlem yapabilelim. Bu döngü hangi sayının altındaki 3 ve 5'in katlarının toplamını bulacaksak o sayıya kadar gidecek. Mesela 10 ise 10'a 1000 ise 1000'e kadar gidecek ki bize soruda 1000'in altındaki sayıları sormuş. Eğer bu sayı 3'e veyahut 5'e bölünüyorsa toplam değerimize ekleyeceğiz ve en son toplam değerimizi döndüreceğiz.


YBCgmU.jpg



1.3) Python ile yazalım :

Bir fonksiyon oluşturduk maxi adında yukarda bahsettiğim örnek olarak 10 ve 1000 sayılarını verdiğim değişkeni parametre olarak aldım. top adında bir değişken tanımladım, döngü bitince bize sonucu gösterecek bu değişken. Döngü 1'den başlayarak max değerimize gidiyor. Direkt max değerimizi yani :

Kod:
for i in range(maxi):

yazabilirdik fakat 0'ı eklememiz sonucu değiştirmeyeceği için boşu boşuna sorgulamamıza gerek yok. Daha sonrasında mod alma operatörü yani % ile geçerli sayımızın 3'e ve 5'e bölümünden kalanını alıyoruz. Ortaokul (sanırım ortaokulda anlatılıyor) okuduysanız bir bölme işleminde kalan 0 ise bölünen sayı bölen sayının tam katırdır.
Eğer sayı 3'ün katı ise sayımız toplam değere eklenir ve 5'in katı olup olmadığına bakılmaz. Buraya dikkat edelim, eğer elif yerine if koysaydım sonuç farklı olacaktı ki bunu göstereceğim sizlere. Peki neden değişecekti ? Cevabı basit: Eğer if koyarsak 3 ve 5'in ortak katlarını iki kez eklemiş olur, 15, 30, 45, 60 gibi. En sonda ise return ile cevabımızı döndürürüyoruz.

Kod:
def bul(maxi: int) -> int:
    top = 0
    for i in range(1, maxi):
        if i%3 == 0:
            top += i
        elif i%5 == 0:
            top += i
    
    return top

print(bul(1000))


YBCcTo.jpg



1.4) GoLang ile de yazalım mı ?

Aslında for döngüsünün içi dışında her şey aynı. Fonksiyon, parametre, döndürülecek değer ve for döngüsü. GoLang'de yazarken switch-case yapısını kullandım. Eğer bir case doğruysa diğer case'lere bakılmaz ki bizim istediğimiz de 3'e tam bölünüyorsa bir de 5'e tam bölünüp bölünmediğini kontrol etmemesi.


Kod:
package main

import (
	"fmt"
)

func bul(maxi int) int {
	var sayi = 0

	for i := 1; i < maxi; i++ {
		switch {
		case i%3 == 0:
			sayi += i
		case i%5 == 0:
			sayi += i
		}
	}
	return sayi
}

func main() {
	fmt.Println(bul(1000))
}


Soru 2


YBCjAj.jpg



2.1) İşte soru !

Project Euler' Alıntı:
Each new term in the Fibonacci sequence is generated by adding the previous two terms. By starting with 1 and 2, the first 10 terms will be:

1, 2, 3, 5, 8, 13, 21, 34, 55, 89, ...

By considering the terms in the Fibonacci sequence whose values do not exceed four million, find the sum of the even-valued terms.


Fibonacci dizisinde her yeni terim önceki iki terimin toplanmasıyla oluşturulur. Max değeri dört milyonu geçmeyen terimlerin çift olanlarının toplamını bulunuz.


YBCptI.jpg



2.2) Bunu iki şekilde çözebiliriz aslında :

a) Tüm fibonacci sayılarını bir listeye yazdırırız ve listeden çift olanları alarak sonuca varırız ama bu bize pahalıya patlar diye düşünüyorum.

b) Her terimi oluşturduğumuz anda çift olup olmadığını kontrol ederek toplam değerine ekleriz.
Doğrusuyla yanlışıyla b yolundan devam ediyorum.

YBCgmU.jpg


2.3) Python ile yazalım:

Sayının çift olup olmadığını kontrol etmek için farklı bir lambda fonksiyon oluşturdum.
Fibonacci terimlerini üreteceğimiz fonksiyonda parametre olarak ilk iki sayıyı ve gideceğimiz max sayıyı (bu soruda dört milyon) parametre olarak aldım. Elimizdeki iki terimin en büyüğü dört milyondan küçük olduğu sürece çalışacak bir while döngümüz var. Eğer yeni ürettiğimiz terim çift ise toplama ekleriz ve en küçük sayımızı yeni terimimiz ile değiştiririz. Sonuca ulaştık.

Kod:
cift_mi = lambda num: True if num%2 == 0 else False

def fib(f, s, maxi) -> int:
    top = 0

    while max(f, s)<4000000:
        if cift_mi(f+s):
            top += f+s
        if f>s:
            s = f+s
        else:
            f = f+s
    
    return top

print(fib(1, 1,4000000))


YBCcTo.jpg



2.4) Go !

Go'da da aynı şekilde yapabiliriz:

Kod:
package main

import (
	"fmt"
)

func ciftmi(num int) bool {
	if num%2 == 0 {
		return true
	}

	return false
}

func fib(f, s, maxi int) int {
	var top = 0
	for f < maxi && s < maxi {
		if ciftmi(f + s) {
			top += f + s
		}
		if f > s {
			s = f + s

		} else {
			f = f + s
		}
	}

	return top
}

func main() {
	fmt.Println(fib(1, 1, 4000000))
}


Soru 3


YBCjAj.jpg



3.1) Sorumuz :
Project Euler' Alıntı:
The prime factors of 13195 are 5, 7, 13 and 29.

What is the largest prime factor of the number 600851475143 ?

13195'in asal çarpanları 5, 7, 13 ve 29'dur. 600851475143 sayısının en büyük asal çarpanı nedir ?


YBCptI.jpg



3.2) Bu soruyu hızlı bir şekilde çözecek algoritmayı yazmak için bir kaç bilgiye ihtiyacımız var. Öncelikle sayının asallığını kontrol eden bir fonksiyon oluşturdum. Eğer 2'den sayının kareköküne kadar olan hiçbir sayı sayıyı tam bölemiyorsa o sayı asaldır, devamını kontrol etmeye gerek yoktur. Bu işimizi hızlı bitirmekte çok işe yarayacak. Daha sonrasında sayının karekökünden başlayıp sıfıra doğru giden bir döngü oluşturdum. Aslında böyle yapmaya gerek yoktu fakat en büyük diye sorduğu için belki hızlı bir şekilde ulaşırız diye denemek istedim. Eğer sayımız asalsa ve 600851475143 sayısını tam bölüyorsa print edilip döngü bitirilir. Cevabı da bulduk zaten, 6857.


YBCgmU.jpg



3.3) Python ile yazalım:

Yukarıda anlattığım her şeyi aynen python'a geçirdim. Sayının karekökünü almak için built in math modülünün sqrt fonksiyonunu kullandım. Örnek kullanım:

Kod:
math.sqrt(600851475143)

for döngüsünün içinde int(math.sqrt(600851475143)) şöyle bir şey yaptım çünkü 600851475143 sayısının karekökü float döndürüyor ve for döngüsü float sayı kabul etmiyor. Bunu integer'a çevirerek for döngüsüne uymasını sağladım. Diğer her şey yukarıda anlattığım gibi:

Kod:
import math


def asalmi(num):
    for _ in range(2, int(math.sqrt(num))):
        if num%_ == 0:
            return False
    
    return True


for _ in range(int(math.sqrt(600851475143)), 3, -1):
    if asalmi(_) and 600851475143%_ == 0:
        print(_)
        break


YBCcTo.jpg



3.4) Golang ile yazalım:

Golang'de de karekök bulmak için math paketinin Sqrt fonksiyonunu kullandım. Kodumuz:

Kod:
package main

import (
	"fmt"
	"math"
)

func asalmi(num int) bool {

	for i := 2; i < int(math.Sqrt(float64(num))); i++ {
		if num%i == 0 {
			return false
		}
	}

	return true
}

func main() {
	for i := int(math.Sqrt(600851475143)); i > 0; i-- {
		if asalmi(i) && 600851475143%i == 0 {
			fmt.Println(i)
			break
		}
	}
}


Soru 4


YBCjAj.jpg



4.1)
Project Euler' Alıntı:
A palindromic number reads the same both ways. The largest palindrome made from the product of two 2-digit numbers is 9009 = 91 × 99.

Find the largest palindrome made from the product of two 3-digit numbers.

Palindrom sayıların ters ve düz okunuşu aynıdır. İki basamaklı iki sayının çarpımından oluşan en büyük palindrom 91*99 = 9009'dur. İki 3 basamaklı sayının çarpımından yapılmış en büyük palindrom sayıyı bulun.


YBCptI.jpg



4.2) Sayının palindrom olup olmadığını anlamak için string'e çevirip tersini düzüne eşitlemeye çalışmalıyız. Daha sonra en büyük üç basamaklı sayı ile en küçük üç basamaklı sayı arasında azalarak gidecek iki döngü açarız. İki döngü açmamızın sebebi iki sayının çarpımını alacak olmamızdır. Palindrom sayıları bir listeye ekleyip en büyük sayıyı buluruz ve cevaba ulaşırız.


YBCgmU.jpg



4.3) Python ile yazalım:

Yukarıda açmadan anlattığım bir kaç şey var. Mesela string'in tersini bulmak gibi:
type(num) = <class 'str'> olmak üzere :

Hiçbir yer' Alıntı:

Bu bize num değişkeninin tersini verecektir.
Ayrıca listedeki max elemanı almak için max fonksiyonunu kullanırız:

Kod:
numlist = [1, 2, 3, 4, 5]

print(max(numlist))

Çıktı:

Python' Alıntı:

Daha fazla uzatmadan full kodu vereyim:

Kod:
def pal(num: int):
    num = str(num)

    if num == num[::-1]:
        return True
    
    return False

li = []


for ilk in range(999, 100, -1):
    for iki in range(999, 100, -1):
        if pal(ilk*iki):
            li.append(ilk*iki)
            break

print(max(li))


YBCcTo.jpg



4.4) Golang :)

Mantık aynı, Python'da kolayca yapabildiğimiz şeyleri Golang'de yaparken biraz zorlanabiliriz. Örneğin bir string'in tersini almak.
Listemizdeki en büyük elemanı almak için öncelikle listemizi sıraladım. Ayrıca golang'de integer'ı string'e çevirmek istersek Python'daki kadar kolay olmuyor. Eğer direkt olarak string(intdeger) yaparsak bize girdiğimiz sayının ascii karakterini veriyor.


Golang kodumuz :

package main

Kod:
import (
	"fmt"
	"sort"
	"strconv"
)

func main() {
	var list []int
	for i := 999; i > 100; i-- {
		for i2 := 999; i2 > 100; i2-- {
			if pal(i * i2) {
				list = append(list, i*i2)
				break
			}
		}
	}
	sort.Ints(list)
	fmt.Println(list[len(list)-1])

}

func pal(num int) bool {
	new := strconv.Itoa(num)
	if new == Reverse(new) {
		return true
	}

	return false
}

//Reverse metodu
func Reverse(s string) string {
	runes := []rune(s)
	for i, j := 0, len(runes)-1; i < j; i, j = i+1, j-1 {
		runes[i], runes[j] = runes[j], runes[i]
	}
	return string(runes)
}

Soru 5


YBCjAj.jpg



5.1) İşte sorumuz !

Project Euler' Alıntı:
The sum of the squares of the first ten natural numbers is,

1^2 + 2^2 + ... + 10^2 = 385

The square of the sum of the first ten natural numbers is,

(1 + 2 + ... + 10)^2 = 55^2 = 3025

Hence the difference between the sum of the squares of the first ten natural numbers and the square of the sum is .

3025 - 385 = 2640

Find the difference between the sum of the squares of the first one hundred natural numbers and the square of the sum.


İlk on doğal sayının karelerinin toplamı,

1^2 + 2^2 + ... + 10^2 = 385

İlk on doğal sayının toplamının karesi,

(1 + 2 + ... + 10)^2 = 55^2 = 3025

Dolayısıyla, ilk on doğal sayının karelerinin toplamı ile toplamın karesi arasındaki fark:

3025 - 385 = 2640

İlk yüz doğal sayının karelerinin toplamı ile toplamın karesi arasındaki farkı bulun.


YBCptI.jpg


5.2) Kolay bir soru. İki fonksiyon oluştururuz biri karelerinin toplamını alır diğeri ise toplamının karesini alır. Sonra farkı hesaplarız. Anlatacak pek bir şey yok aslında.
Dümdüz matematik ve aritmetik operatörleri kullanacağımız bir soru. Bir sayının iki türlü karesini alabiliriz. Sayıyı kendisiyle çarparak veyahut sayının üsüne iki yazarak.
İkisi aynı şey gibi görünebilir fakat matematikte aynı, ne dediğimi birazdan daha iyi anlayacaksınız.


YBCgmU.jpg



5.3) Python ile yazalım bakalım.

Yukarıda bahsettiğim şeyi burada görebileceğiz. Sayının karesini almak için sayi**2 de kullanabilirim sayi*sayi da. Ben sayi**2 kullanmayı tercih ettim.
Diğer her şey klasik, belki += operatörünü görmemiş olabilirsiniz:

sayi += 1 -> sayi = sayi+1

Şekilde açabiliriz.

Kod:
def sofsq(x):
    summ = 0
    for _ in range(1, x+1):
        summ += _**2
    
    return summ

def sqofs(x):
    summ = 0
    for _ in range(1, x+1):
        summ+=_
    
    return summ**2

def fark(x):
    return sqofs(x)-sofsq(x)

print(fark(100))


YBCcTo.jpg



5.4) GoLang ile yazalım.

Tek fark sayının karesini üs alma operatörü yerine çarpma operatörü ile almak.

Kod:
package main

import (
	"fmt"
)

func sofsq(x int) int {
	var summ = 0

	for i := 0; i < x+1; i++ {
		summ += i * i
	}
	return summ
}

func sqofs(x int) int {
	var summ = 0

	for i := 0; i < x+1; i++ {
		summ += i
	}

	return summ * summ
}

func fark(x int) int {
	return sqofs(x) - sofsq(x)
}

func main() {
	fmt.Println(fark(100))

}

Soru 6


YBCjAj.jpg




6.1)
Soru ve meali

Project Euler' Alıntı:
By listing the first six prime numbers: 2, 3, 5, 7, 11, and 13, we can see that the 6th prime is 13.

What is the 10 001st prime number?

İlk altı asal sayıyı listeleyerek: 2, 3, 5, 7, 11 ve 13, 6. üssün 13 olduğunu görebiliriz.

10 001. asal sayı nedir?


YBCptI.jpg



6.2) Ne zırvalıyor bu ?

Asal sayıları bir dizi olarak düşünmüş ve 1'den başlayarak numaralandırmış kendi kafasında. Bize 10 001. soruyor. Yapacağımız şey basit, sayı asal mı diye kontrol eden bir fonksiyon oluştururuz.
Tüm sayıları gezeriz, eğer asal bir sayıya rastlarsak asal sayı sayacımızı bir artırırız. Hadi yapalım !


YBCgmU.jpg



6.3) Python:

Anlatacak pek bir şey yok. Üstte anlattıklarımın python'a çevirisi. Buyurun kodlarımız :

Kod:
def asalmi(x):
    for _ in range(2, x-1):
        if x%_ ==0:
            return False
    
    return True

sira = 0
sayi = 0

while sira != 10001:
    if asalmi(sayi):
        sira += 1

    sayi += 1

print(sayi)


YBCcTo.jpg



6.4) Golang eksik kalmasın:

While döngüsü olmadığı için for döngüsü kullandım, aslında işimi kolaylaştırdı:

Kod:
package main

import (
	"fmt"
)

func main() {
	sira := 0
	asal := 0
	for sayi := 2; sira != 10001; sayi++ {
		if asalmi(sayi) {
			sira++
			asal = sayi
		}
	}
	fmt.Println(asal)
}

func asalmi(x int) bool {
	for i := 2; i < x-1; i++ {
		if x%i == 0 {
			return false
		}
	}
	return true
}

Soru 7


YBCjAj.jpg




7.1) Sorumuz:

The following iterative sequence is defined for the set of positive integers:

n → n/2 (n is even)
n → 3n + 1 (n is odd)

Using the rule above and starting with 13, we generate the following sequence:

13 → 40 → 20 → 10 → 5 → 16 → 8 → 4 → 2 → 1
It can be seen that this sequence (starting at 13 and finishing at 1) contains 10 terms. Although it has not been proved yet (Collatz Problem), it is thought that all starting numbers finish at 1.

Which starting number, under one million, produces the longest chain?

NOTE: Once the chain starts the terms are allowed to go above one million.

meali:

Pozitif tamsayılar kümesi için aşağıdaki yinelemeli dizi tanımlanmıştır:

n → n / 2 ( n çift)
n → 3 n + 1 ( n tektir)

Yukarıdaki kuralı kullanarak ve 13 ile başlayarak aşağıdaki diziyi oluşturuyoruz:

13 → 40 → 20 → 10 → 5 → 16 → 8 → 4 → 2 → 1
Bu dizinin (13'ten başlayıp 1'de biten) 10 terim içerdiği görülebilir. Henüz ispatlanamamış olmasına rağmen (Collatz Problemi) tüm başlangıç ​​sayılarının 1'de bittiği düşünülmektedir.

Bir milyonun altındaki hangi başlangıç ​​numarası en uzun zinciri üretir?

NOT: Zincir başladığında, şartların bir milyonun üzerine çıkmasına izin verilir.


YBCptI.jpg



7.2) Soruyu kavrayalım:

Bir tane başlangıç seçiyoruz, eğer sayımız tek ise n/2'ye gidiyoruz eğer çift ise 3n+1'e gidiyoruz. Sayımız 1'e gidene kadar aynı işlemleri tekrar ediyoruz. Bu işlemleri yaparken kaç adımda 1'e ulaştığımızı tutuyoruz, eğer bir önceki işlemin adım sayısından uzun ise en yüksek adım sayısına sahip olan sayıyı değiştiriyoruz. Daha iyi anlamanız için yazmaya geçelim:


YBCgmU.jpg



7.3) Python:

Sadece sayının tek olup olmadığını kontrol eden bir fonksiyon yazsak yeter. Tek değilse çifttir nasıl olsa :D Bunun haricinde al diye bir fonksiyon oluşturdum, sayının zincir uzunluğunu veriyor. Alt kısımdaki for döngüsünde ise en büyük zincir uzunluğuna sahip olan sayıyı buldum:

Kod:
def tekmi(x):
    if x%2==0:
        return False
    
    return True

def al(x):
    zincir = 1
    while x!=1:
        if tekmi(x):
            x = 3*x+1
            zincir+=1
        else:
            x = x/2
            zincir+=1
    return zincir

enf = 0
for i in range(1, 1000000):
    gec = al(i)
    if gec > enf:
        enf = gec
        maximum = i

print(maximum)


YBCcTo.jpg



7.4) Golang için:

Kod:
package main

import (
	"fmt"
	_ "fmt"
)

func main() {
	enf := 0
	maximum := 0
	for i := 1; i < 1000000; i++ {
		gec := al(i)
		if gec > enf {
			enf = gec
			maximum = i
		}
	}

	fmt.Println(maximum)

}

func tekmmi(x int) bool {
	if x%2 == 0 {
		return false
	}

	return true
}

func al(x int) int {
	zincir := 1
	for i := 1; x != 1; i++ {
		if tekmmi(x) {
			x = 3*x + 1
			zincir++
		} else {
			x = x / 2
			zincir++
		}
	}
	return zincir
}

Soru 8

YBCjAj.jpg


8.1) Sorumuz:

If the numbers 1 to 5 are written out in words: one, two, three, four, five, then there are 3 + 3 + 5 + 4 + 4 = 19 letters used in total.

If all the numbers from 1 to 1000 (one thousand) inclusive were written out in words, how many letters would be used?


NOTE: Do not count spaces or hyphens. For example, 342 (three hundred and forty-two) contains 23 letters and 115 (one hundred and fifteen) contains 20 letters. The use of "and" when writing out numbers is in compliance with British usage.

Kısacası 1'den 1000'e kadar olan sayıları yazı ile yazsaydık kaç karakter kullanırdık ? Boşlukları saymayacağım. Bu İngilizce fakat ben Türkçe versiyonunu hazırlayacağım.

YBCptI.jpg


8.2) Mantığımız.

Sayıları direkt yazıya dökemeyeceğimiz için öncelikle birler, onlar, yüzler ve binler basamaklarının kelimeyle yazılışını listelere ekliyorum. Daha sonra bu listelerden çekeceğiz. Sıfırıncı index'leri boş bıraktım ki eğer basamak değeri sıfırsa boş bıraksın. Çok fazla int-string çevirmesi yaptım çevirmeden de yapabilirdim (önceki koddaki gibi) fakat burada daha çok odaklanmamız gerektiğini düşündüğüm nokta basamak değerlerini listelerden seçmek olduğu için çevirmeden yaptım.




YBCgmU.jpg


8.3)
Python ile yazalım:

Kod:
birler = ["", "bir", "iki", "üç", "dört", "beş", "altı", "yedi", "sekiz", "dokuz"]
onlar = ["", "on", "yirmi", "otuz", "kırk", "elli", "altmış", "yetmiş", "seksen", "doksan"]
yuzler = ["", "yüz", "ikiyüz", "üçyüz", "dörtyüz", "beşyüz", "altıyüz", "yediyüz", "sekizyüz", "dokuzyüz"]
binler = ["", "bin"]

def cevirici(num, birler, onlar, yuzler, binler):
    num = str(num)
    lenin = len(num)
    sonuc = ""

    if lenin>=4:
        sonuc += binler[int(num[lenin-4])] 
    if lenin>=3:    
        sonuc += yuzler[int(num[lenin-3])]
    if lenin>=2:
        sonuc += onlar[int(num[lenin-2])]
    sonuc += birler[int(num[lenin-1])]


    return sonuc

uzunluk = 0
for _ in range(1, 1001):
    uzunluk += len(cevirici(_, birler, onlar, yuzler, binler))

print(uzunluk)



 
Son düzenleme:

ѕeleɴια

Kıdemli Üye
18 May 2018
2,620
904
ZYZZ
Çok güzel denk geldi bende burda algoritma yapıyorum ( Okul form yapıyorum :D )

Eyv hocam elinize sağlık
 

0x1D

Kıdemli Üye
23 Nis 2020
2,652
78
MARS
Eline sağlık hocam bilgilendirici konu.

Elinize sağlık hocam yararlı bir konu...

Eline sağlık güzel ve detaylı :)

Çok güzel denk geldi bende burda algoritma yapıyorum ( Okul form yapıyorum :D )

Eyv hocam elinize sağlık

Güzel olmuş, eline sağlık

Teşekkürler :)
 
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.