#include <stdio.h>
int main(){
int a,b,c=0,i;
printf("Lutfen sayi giriniz: ");
scanf("%d",&a);
if (a>500 || a<0){
printf("0 ile 500 arasi sayi girmediniz.");
return 0;
}
for (i=2;i<a+1;i++){
for (b=2;b<i;b++){
c=0;
if (i%b==0){
c=1;
break;
}
}
if (c==0)
printf("%d\n",i);
}
return 0;
}
Olmuyor girdiğim sayıya kadar sıralıyor sayıları.if(y%2==1) böyle deneyin "%" mod alma işlemleri için kullanılır.
#include <stdio.h>
int main(){
int a,b,c=0,i;
printf("Lutfen sayi giriniz: ");
scanf("%d",&a);
if (a>500 || a<0){
printf("0 ile 500 arasi sayi girmediniz.");
return 0;
}
for (i=2;i<a+1;i++){
for (b=2;b<i;b++){
c=0;
if (i%b==0){
c=1;
break;
}
}
if (c==0)
printf("%d\n",i);
}
return 0;
}
#include <iostream>
using namespace std;
bool isPrime(int number);
int main()
{
cout << "Limit -> ";
int limit = 0;
cin >> limit;
for (size_t i = 0; i < limit; i++)
{
if (isPrime(i))
{
cout << i << endl;
}
}
}
bool isPrime(int number)
{
bool flag = true;
if (number > 2 && number % 2 == 0)
{
return false;
}
for (int i = 2; i <= sqrt(number); i += 2)
{
if (number % i == 0)
{
flag = false;
break;
}
if (i == 2)
{
i--;
}
}
if (number >= 2)
{
return flag;
}
else
{
return false;
}
}
cout, cin
görmediyseniz. printf, scanf
(visual c++ kullanıyorsanız scanf_s
) kullanabilirsiniz geri kalan aynı. Bu arada eğer #include <iostream>
kullanmıyorsanız #include <math.h>
yazmanız gerekiyor.C++:#include <iostream> using namespace std; bool isPrime(int number); int main() { cout << "Limit -> "; int limit = 0; cin >> limit; for (size_t i = 0; i < limit; i++) { if (isPrime(i)) { cout << i << endl; } } } bool isPrime(int number) { bool flag = true; if (number > 2 && number % 2 == 0) { return false; } for (int i = 2; i <= sqrt(number); i += 2) { if (number % i == 0) { flag = false; break; } if (i == 2) { i--; } } if (number >= 2) { return flag; } else { return false; } }
cout, cin
görmediyseniz.printf, scanf
(visual c++ kullanıyorsanızscanf_s
) kullanabilirsiniz geri kalan aynı. Bu arada eğer#include <iostream>
kullanmıyorsanız#include <math.h>
yazmanız gerekiyor.
Haklısınız. Her condition kontrolünde tekrardan sqrt() hesabı yapıyor olabilir.En mantikli yol bu. Yalniz for condition i icerisinde sqrt alinca onu her iterasyonda execute ediyor olabilir, compiler optimize etmiyor olabilir onu. Variable a alip oraya constant eklemek daha dogru sanki. Mobildeyim, compiler ciktisina bakmak gerek.
#include <iostream>
using namespace std;
bool isPrime(int number);
int main()
{
cout << "Limit -> ";
int limit = 0;
cin >> limit;
for (size_t i = 0; i < limit; i++)
{
if (isPrime(i))
{
cout << i << endl;
}
}
}
bool isPrime(int number)
{
bool flag = true;
if (number > 2 && number % 2 == 0)
{
return false;
}
const int numberLimit = sqrt(number);
for (int i = 2; i <= numberLimit; i += 2)
{
if (number % i == 0)
{
flag = false;
break;
}
if (i == 2)
{
i--;
}
}
if (number >= 2)
{
return flag;
}
else
{
return false;
}
}
Bu sitenin çalışmasını sağlamak için gerekli çerezleri ve deneyiminizi iyileştirmek için isteğe bağlı çerezleri kullanıyoruz.