首页 > 其他分享 >素数判断

素数判断

时间:2022-09-28 21:33:05浏览次数:79  
标签:判断 int 列表 素数 location && document

题面

素数是一个自然数,它恰好有两个不同的自然数除数:1 和它本身。 例如,前四个质数是:2、3、5 和 7。
编写一个程序,读取 N 个整数的列表并打印该列表中素数的个数。

输入

第一行包含一个整数 N,即列表中元素的数量。
N 个数字在以下几行中给出。

1≤N≤10000
2≤列表中的元素≤108

输出

打印给定列表中素数的数量。

 

法一:常规循环   复杂度O(n)

法二:由sqrt(x)处断开,提高运行效率

法三:质数总是分布在6x+1或者6x+5

#include <iostream> #include <math.h> using namespace std; /* int judge(int x) {     for(int i=2; i<=sqrt(x); i++)   //从开方那里截断减少运行时间         if(x%i==0)             return 0;     return 1; } */ //优化 //质数的特点,质数总等于6x+1 int judge(int x) {     if(x<=3)         return x>1;     if(x%6!=1&&x%6!=5)         return 0;     for(int i=5; i<=sqrt(x); i+=6)         if(x%i==0||x%(i+2)==0)             return 0; } int main(void) {     int n, count=0;     cin>>n;     int*p=(int*)malloc(n*sizeof(int));  //动态数组实现     int*q=p;     for(int i=0; i<n; i++){         cin>>*q;         if(judge(*q++))             count++;       }         cout<<count;     free(p);     return 0; }

 

TRANSLATE with x English
Arabic Hebrew Polish
Bulgarian Hindi Portuguese
Catalan Hmong Daw Romanian
Chinese Simplified Hungarian Russian
Chinese Traditional Indonesian Slovak
Czech Italian Slovenian
Danish Japanese Spanish
Dutch Klingon Swedish
English Korean Thai
Estonian Latvian Turkish
Finnish Lithuanian Ukrainian
French Malay Urdu
German Maltese Vietnamese
Greek Norwegian Welsh
Haitian Creole Persian  
  TRANSLATE with COPY THE URL BELOW Back EMBED THE SNIPPET BELOW IN YOUR SITE Enable collaborative features and customize widget: Bing Webmaster Portal Back

标签:判断,int,列表,素数,location,&&,document
From: https://www.cnblogs.com/Ting-LOVE/p/16739660.html

相关文章