题目描述
从键盘输入一个整数n(98000<=n<=100000),统计1至n范围内素数的个数。
质数又称素数。指在一个大于1的自然数中,除了1和此整数自身外,没法被其他自然数整除的数。换句话说,只有两个正因数(1和自己)的自然数即为素数。比1大但不是素数的数称为合数。1和0既非素数也非合数。
输入
输入一个整数n(98000<=n<=100000)
输出素数的个数样例输入 Copy
100000
样例输出 Copy
9592
题目描述
从键盘输入一个整数n(98000<=n<=100000),统计1至n范围内素数的个数。
质数又称素数。指在一个大于1的自然数中,除了1和此整数自身外,没法被其他自然数整除的数。换句话说,只有两个正因数(1和自己)的自然数即为素数。比1大但不是素数的数称为合数。1和0既非素数也非合数。
输入
输入一个整数n(98000<=n<=100000)
输出素数的个数样例输入 Copy
100000
样例输出 Copy
9592
#include <stdio.h>
#include <stdlib.h>
/*
求素数:只能被1和他本身整除的数(1除外)
98000<=n<=100000
*/
int main(int argc, char *argv[]) {
int i,j;
int flag;//标识某个数是不是素数
int cnt = 0;//统计素数的个数
//i代表2到100之间的数
for(i=98000;i<=100000;i++){
//内循环判断i是不是素数
flag = 0;//默认i是素数
for(j=2;j<10;j++){
if((i!=j) && (i % j == 0)){
flag = 1;//表示i不是素数
break;
}
}
if(flag==0){ //flag=0表示i是素数
//每行显示10个素数
if((cnt!=0) && (cnt % 10 ==0)){
printf("\n");
}
cnt++;
printf("%d\t",i);
}
}
return 0;
}