题目
![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/47821dda329a4a42b1e65cfdaa2b5f3e.png)
代码
#include <stdio.h>
#include <mpi.h>
int main(int argc,char** argv){
int size,rank,name_len;
long long n = 0;
char Processorname[20];
long long count = 0, start = 0, end = 0;
MPI_Comm comm = MPI_COMM_WORLD;
MPI_Init(&argc,&argv);
MPI_Comm_size(comm,&size);
MPI_Comm_rank(comm,&rank);
MPI_Get_processor_name(Processorname, &name_len);
sscanf(argv[1],"%lld",&n);
count = n / size;
start = rank * count;
end = (rank+1) * count;
if (rank == 0) {
start = 1;
}
if (rank == (size - 1)) {
end = n;
}
long long test = start;
int check_count=0;
for(long long i = test; i < end; i++) {
long long j = i;
while(j != 1) {
if(j % 2 == 0) {
j = j / 2;
} else {
j = j * 3 + 1;
}
check_count++;
}
printf("%s on %lld 执行了 %d 步,等于1\n",Processorname,i,check_count);
check_count=0;
}
MPI_Finalize();
return 0;
}
程序运行截图
![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/49ff6cd2f5144f82b1bbf753d0913281.png)