本文主要是介绍使用数组打印素数,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
素数即为大于1的自然数,且其只能被1和其本身整除。
比如 5,只能被1和5整除,对于4,还能被2整除。因此5是素数,4不是。
本程序是从命令行获取最大的自然数,输出在该自然数范围内的素数。
程序获取到命令行的参数后,使用函数atol字符转换成数值。
并申请内存。
求解出素数后将其打印出来。
#include<stdio.h>
#include<stdlib.h>int main(int argc ,char *argv[])
{printf("\r\n********system start **************\r\n");int i,j;int N = atol(argv[1]);// int N = 100; printf("N=%d",N);int *arr =(int*) malloc((unsigned int)(N * sizeof(int)));if(arr == NULL){printf("request memory error ");return 0;}for(i = 2; i < N; i++){*(arr + i) = 1;}for(i = 2; i < N ; i++){for(j = i; i*j <N ;j++){*(arr+i*j) = 0;}}for(i = 2;i < N ;i++){if(*(arr+i)){printf("%d\t",i);}}printf("\r\n********system finish **************\r\n");return 1;
}
运行结果:
这篇关于使用数组打印素数的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!