ADV-355 质数2
程序员文章站
2022-06-08 18:05:26
...
**与这道题《ADV-354 质数》不同的是,
本道题要求先输出所有质数的个数 ,再输出每个质数,所以需要一个数组来暂存质数,最后再输出**
AC代码:
#include<stdio.h>
#include<math.h>
int isprime(int n){ //是质数,返回 1; 否则返回 0
int i;
if( n % 2 == 0 ) return 0;
for( i=3; i<=sqrt(n); i+=2){
if( n % i == 0) return 0;
}
return 1;
}
int main(){
int n, i, flag=0;
scanf("%d", &n);
int a[n], j=0; //数组 a 暂存质数
if( n < 2){
return 0;
}
else if( n > 2 ){
a[j] = 2;
j += 1;
flag += 1;
}
for(i=3; i<n; i++){
if( isprime(i) ){
a[j] = i;
j += 1;
flag += 1;
}
}
printf("%d\n", flag);
for(i=0; i<flag; i++){
printf("%d ", a[i]);
}
return 0;
}
上一篇: 支付宝官方澄清:未使用华为方舟编译器