用帅逸法查找2到100之内的素数,(请在空中填写表达式或语句等)include (ath h> Bincluda (andio.h)roid ged(int *a ) int i,j For(i-2; (100:5+)) a[i7-_ . /9用 下标对应数组元素值 来初始化数组*/for(i=2: i<sqrt(100);it+) for(j=___ :j<=100:j++) if(a[i]!= 0 8 a([j]_____) if(a[j]%a[i]== 0) a[j_____ ; void main( ( int i, a[101]={ .) /* 数组初始化为0 */ gcd( a ); /*函数调用, 数组名作为实参*/ for(i=2; i<=100;i++) if(a[i]!=0) printf("%4d",a[i]);
时间: 2024-03-29 11:38:52 浏览: 134
#include <stdio.h>
#include <math.h>
void getPrimes(int *a) {
int i, j;
// 用下标对应数组元素值来初始化数组
for (i = 2; i <= 100; i++) {
a[i] = i;
}
// 利用筛选法求素数
for (i = 2; i <= sqrt(100); i++) {
for (j = i + 1; j <= 100; j++) {
if (a[i] != 0 && a[j] % a[i] == 0) {
a[j] = 0;
}
}
}
}
int main() {
int i, a[101] = {0};
getPrimes(a);
for (i = 2; i <= 100; i++) {
if (a[i] != 0) {
printf("%4d", a[i]);
}
}
return 0;
}
相关问题
设计一个函数,用来判断一个整数是否为素数。 代码如下,按要求在空白处填写适当的表达式或语句,使程序完整并符合题目要求。
```
#include <iostream>
using namespace std;
bool isPrime(int n) {
if (n <= 1) {
return false;
}
for (int i = 2; i * i <= n; i++) {
if (n % i == 0) {
return false;
}
}
return true;
}
int main() {
int n;
cin >> n;
if (isPrime(n)) {
cout << n << " is a prime number" << endl;
} else {
cout << n << " is not a prime number" << endl;
}
return 0;
}
```
在空白处填入适合的语句即可。
*请补充main函数。该函数的功能是:求1-100(不包括100)以内所有素数的平均值。 程序运行后的结果为42.40。 注意:部分源程序给出如下。 请勿改动main函数和其他函数中的任何内容,仅在main函数的横线上填入所编写的若干表达式或语句。 试题程序: */ #include <stdlib.h> #include <stdio.h> int main() { int i, j, n=0, flag; float aver=0; for(j=2; j<100; j++) { flag=1; for(i=2; i<j; i++) /**********FILL**********/ if( [1] ) { flag=0; break; } /**********FILL**********/ if( [2] ) { n++; aver+=j; } } /**********FILL**********/ printf("\n\n average=%4.2f\n", [3] ); return 0; }
#include <stdlib.h>
#include <stdio.h>
int main() {
int i, j, n=0, flag;
float aver=0;
for(j=2; j<100; j++)
{
flag=1;
for(i=2; i<j; i++)
if(j%i == 0) // 填入判断j是否为素数的条件
{
flag=0;
break;
}
if(flag == 1) // 填入判断j是否为素数的条件
{
n++;
aver+=j;
}
}
aver /= n; // 填入计算平均数的表达式
printf("\n\n average=%4.2f\n", aver);
return 0;
}
阅读全文