1000003 Bir Asal Sayı Mıdır?
-
Excel'de 1000003ü 19000 defa yazdım ve karşısıanda 1den 19000 e kadar olan sayıları sıraladım ve =+A1/B1 formülüyle hepsini böldüm ama hangisine tam bölündüğünü bulmak için 19000 sayıya teker teker bakmam gerekiyor. bunun daha kolay bir yolu var mı? ( çok gerksizmiş gibi görünüyor olabilir ama gerçekten buna çok ihtiyacım var)
birde şöyle birşey varmış ama ona kafam basmadı
/*
Asallar v0.07 Girilen sayıya kadar olan asal sayıları bulur.
Copyright (C) 2004 Engin KUZU
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
//http://www.gnu.org/copyleft/gpl.html
//Turkce cevirisi: http://www.belgeler.org/howto/gpl_copy.html
#include <stdio.h>
#include <math.h>
// 2,3,5 iptal edildi. Sorgulama dizilimi 7 den baslayarak,
// +4 +2 +4 +2 +4 +6 +2 +6
// seklinde olacak.
// 2,3,5,7 hazir yazilacak.
int ver ( int s )
{
static int i=-1;
i++;
if(i==8)
i=0;
switch(i)
{
case 0: s+=4; break;
case 1: s+=2; break;
case 2: s+=4; break;
case 3: s+=2; break;
case 4: s+=4; break;
case 5: s+=6; break;
case 6: s+=2; break;
case 7: s+=6; break;
}
return s;
}
int main(int argc, char *argv[])
{
unsigned int dizi[1000000];
dizi[0]=2; dizi[1]=3; dizi[2]=5; dizi[3]=7;
unsigned int sayac=3,sayi,i,temp;
system("clear");
do{
printf("Kaca kadarki asal sayilari istiyorsunuz=");
scanf("%d",&sayi);
if(sayi<8)
{
system("clear");
printf("8 den kucuk bir sayi girmeyiniz\n");
i=0;
}
else { i=1; }
}while(i==0);
printf("Asal sayilar=2,3,5,7");
int son=7,karekok,durum;
karekok=sqrt(sayi);
while(1)
{
son=ver(son);
if(sayi<son)
{
printf("#\n%d tane bulundu.\n",sayac+1);
exit(0);
}
durum=0;
for(i=0;dizi<=karekok && i<sayac;i++)
{
temp=dizi;
if( son%temp == 0 )
{
durum=1;
break;
}
}
if(durum==0)
{
printf(",%d",son);
sayac++;
dizi[sayac]=son;
}
}
} -
1000003 evet.. asal bir sayi.
http://www.mistupid.com/math/primes.htm
burdan kontrol edebilirsin istedigin kadar sayinin asal olup olmadigini..
verdigin C programi benim compilerde hata verdi.. ama elimde öncede kalma bir tane vardi.. senin belirledigin bir sayiya kadar bütün asal sayilari hesapliyor..
istiyorsan göndereyim sana..
hadi kolay gele.. -
Eyvallah hacım gönderisen çok iyi olur
-
http://rapidshare.de/files/10319690/Desktop.rar.html
hadi kolay gele.. -
evet asaldir, ona en yakın asal da 999979'dur. Yazdığım java kodunu koyacağım birazdan. Asal.java adıyla kaydedip çalıştırırsan o sayıya kadar olan tüm asalları da yazdırır sana.
-
public class Asal
{
public static int divideByPrime(int n, int[] arr)
{
for(int i=0;i{
if(n%arr==0)
{
//System.out.println("valla bu "+ n +" sayısını bölen en küçük
asal " +arr +"dir. Ben bilmem :) ");
return 0;
}
}
return 1;
}
public static int[] createArray(int n)
{
int toplamAsal = 3;
int[] arr={2,3,5};;
for(int i = 6;i{
if(divideByPrime(i,arr)!=0)
{
toplamAsal+=1;
arr= add(arr,i);
System.out.println("" + i + " sayısı asaldır. Bu sayı dahil
toplam asal sayısı " + toplamAsal +"'dır." );
if(i==n)
{ System.out.print("" + n + " Sayısı " + toplamAsal+ ". asal
sayıdır." );}
}
else if(i==n)
{ System.out.print(""+ n + " Sayısı asal degildir");}
}
return arr;
}
public static int[] add(int[] arr, int a)
{
int[] newArr =new int[arr.length+1];
for(int i =0; i{
newArr=arr;
}
newArr[arr.length]= a;
return newArr;
}
public static void main(String[] args)
{
createArray(1000003);
System.out.println("");
}
} -
kardeş bu sorunun cavebını bulabilmenin yolubence matlab kullanmaktan geçiyor. matlab yazılacak gerekli komutlardan sonra bu sorunun cevabıkolayca bulunabilir. sağolsun arkadaşlar şimdilik sorunun cevabını vermiş ben bundan sonrakiler için bunu belirtiyorum.
