int main() { long i; int sayac=0; for(i=1;;i++){ if(asal(i)) sayac++; if(sayac==10001) break; } printf("%ld",i); return 0; }
void asaliste(long double dizi[], int sayi){ int i; dizi[0] = 2; for(i=1;i<sayi;i++) dizi[i] = asal(); }
int main() { int p,g,a,b,t; unsigned long long int A, B, secret1, secret2; printf("*********Klasik Diffie Hellman Anahtar Degisimi*********\n\n"); printf("NOT : 'g' bir tamsayi, 'p' bir asal sayi ve 'p'-1>'g' olmalidir. \n\n"); tekrar2: printf("Lutfen ortak 'g' taban degerini giriniz : "); scanf("%d", &g); tekrar: printf("Lutfen ortak 'p' mod degerini giriniz : "); scanf("%d", &p); t=asal(p); if(t==1) goto tekrar; t=aralarindaasal(g,p); if(t==1) goto tekrar2; printf("\n\tg : %d\n\tp : %d\n", g,p); printf("\nClient gizli degerini giriniz : "); scanf("%d", &a); printf("Server gizli degerini giriniz : "); scanf("%d", &b); printf("\n\ta : %llu\n\tb : %llu\n", a,b); A=publickey(g,a,p); B=publickey(g,b,p); printf("\nPublic Deger Hesaplama=> A : g^a mod p\n"); printf(" B : g^b mod p\n"); printf("\nClient public degeri => A : %d^%d mod %d\n", g,a,p); printf("Server public degeri => B : %d^%d mod %d\n\n", g,b,p); printf("\tA : %llu\n\tB : %llu\n\n", A,B); printf("Gizli Deger Hesaplama => Client : B^a mod p = g^ba mod p\n"); printf(" Server : A^b mod p = g^ab mod p\n\n"); printf("Client gizli degeri => s1 : %llu^%d mod %d\n", B,a,p); printf("Server gizli degeri => s2 : %llu^%d mod %d", A,b,p); secret1=secretkey(B,a,p); secret2=secretkey(A,b,p); printf("\n\n\ts1 : %llu\n\ts2 : %llu\n", secret1,secret2); if(secret1!=secret2) printf("\n\n's' degerleri esit cikmadi. Islemlerde bir sorun olabilir. \nKontrol ettikten sonra, tekrar deneyiniz.\n\n"); else printf("\nOrtak gizli deger => s : %llu",secret1); printf("\n\nClient'in Bildigi Degerler : g, p, a, A, B, s\n"); printf("Server'in Bildigi Degerler : g, p, b, B, A, s"); printf("\n\n\n\t*******Tolga Akkapulu*******\n\thttp://www.tolgaakkapulu.com"); getch(); }