是否素数
2016-03-02 20:14
381 查看
素数:质数(prime number)又称素数,除了1和它本身以外不再有其他的因数。
1)判断一个大于2的正整数是否是素数
输出结果:
2) 请输出3-100之间的素数
第一种:遍历2-num之间的所有数
输出结果如下:
第二种:遇到能被整除的数,直接跳出循环。
输出结果和上面的相同,但是循环次数明显减少,减小了算法复杂度。
1)判断一个大于2的正整数是否是素数
int main() { int num; printf("请输入一个大于2的正整数:"); scanf("%d",&num); int count = 0; for(int i = 2;i < num;i++)//i<num/2 { if(num % i == 0) { count++; } } if(count == 0) { printf("%d是素数.\n",num); } else printf("%d不是素数.\n",num); system("pause"); return 0; }
输出结果:
2) 请输出3-100之间的素数
第一种:遍历2-num之间的所有数
int main() { int primer[50]; int k = 0; for(int i = 3;i <= 100;i++) { int count = 0; for(int j = 2;j < i;j++) { if(i%j == 0) { count++;//如果不是素数,遍历的次数过多 continue; } } if(count == 0)//没有能被整除的数 { primer[k++] = i; } } printf("3-100之间的素数有:\n"); for(int i = 0;i < k;i++) { printf("%d\t",primer[i]); if((i+1)%6 == 0) printf("\n"); } system("pause"); return 0; }
输出结果如下:
第二种:遇到能被整除的数,直接跳出循环。
int main() { int primer[50]; int k = 0,j; for(int i = 3;i <= 100;i++) { for(j = 2;j <= i;j++) { if(i%j == 0) { break;//跳出里面的那个for循环 } } if(j==i) { primer[k++] = i; } } printf("3-100之间的素数有:\n"); for(int i = 0;i < k;i++) { printf("%d\t",primer[i]); if((i+1)%6 == 0) printf("\n"); } system("pause"); return 0; }
输出结果和上面的相同,但是循环次数明显减少,减小了算法复杂度。
相关文章推荐
- Prime Gap
- Prime Cuts
- LEETCODE--Count Primes
- Leecode_Count Primes
- Prime算法的代码
- UVA 10200 Prime Time
- 最小生成树prime
- PAT-B 1007. 素数对猜想(C++, python)
- PAT-B 1013. 数素数
- LeetCode 204. Count Primes
- Algorithms - 判断素数(prime) 详解 及 代码
- ubuntu14.04安装prime切换intel、nvidia显卡
- HDU 1102 Constructing Roads
- HDU 1863 畅通工程
- POJ 2485 Highways
- ZOJ 1586 QS Network 最小生成树水题
- poj1258_prime
- POJ 3126 Prime Path(素数,BFS最短路)
- hdu1262-寻找素数对
- 判断素数的算法