Хотите узнать сложность этой программы, новый способ для простых чисел
//simply we are going to use the approach that the numbers that are divisble by prime numbers are not prime and the others are prime. #include<stdio.h> #include<math.h> int main() { int n,i,arr[100000],size=0,j,temp; // array is for storing prime numbers scanf("%d",&n); // we will be finding prime numbers between 2 to n (both inclusive) arr[0]=2; // we know that 2 is a prime number size++; // we got 1 prime number so size of array gets incremented for(i=3;i<=n;i++) { temp=pow(i,0.5); //square root of the number (for which we are going to check is it prime or not) for(j=0;arr[j]<=temp;j++){ if(i%arr[j]==0) break; } if(arr[j]>temp) { arr[size]=i; size++; } } for(i=0;i<size;i++) printf("%d \n",arr[i]); return 0; }
Что я уже пробовал:
я не очень много знаю о сложности, но я хочу использовать этот подход(если этот способ эффективен) в случае вопроса, связанного с простыми числами в соревнованиях
Kornfeld Eliyahu Peter
https://primes.utm.edu/prove/merged.html
(Вы хотите сказать, что нашли новый способ основания простых чисел? Я так не думаю... https://en.wikipedia.org/wiki/Sieve_of_Eratosthenes)
Dave Kreskowiak
МММ....этот код не находит простых чисел. Так какой смысл нотации "о большое" за это?
Если вы используете операцию по модулю для каждого тестируемого числа, вы делаете это неэффективно.