解题思路: 判断是否为质数,然后做乘积,质数个数加一.当质数个数达到n时,退出循环. 注意事项: 尽量优化算法,免得时间超限, 较大的数尽量使用 long long 参考代码: #include<stdio.h> int fun(int n) { int i; for (i = 2; i*i <= n; i++) { if (n%i == 0) //定义函数,判断是否为质数 return 0; } return 1; } int main() { long long sum = 1; int i = 2, j = 1, n; scanf("%d", &n); //j为质数的个数, n为输入的质数个数 while (j <= n) { if (fun(i)) //i从2开始运算,如果i为质数,进行乘积,并且对50000求余 { sum *= (i % 50000); j++; sum %= 50000; } i++; } printf("%lld", sum); //输出结果 return 0; }
0.0分
0 人评分
gets函数前有scanf读取时候,会读取缓存回车导致出错!!!浏览:1100 |
简单的a+b (C语言代码)浏览:723 |
C语言程序设计教程(第三版)课后习题12.2 (C语言代码)浏览:811 |
C语言程序设计教程(第三版)课后习题5.7 (C语言代码)浏览:560 |
C语言训练-大、小写问题 (C语言代码)浏览:2357 |
C语言训练-排序问题<1> (C++代码)浏览:602 |
C语言程序设计教程(第三版)课后习题9.4 (Java代码)浏览:1419 |
C语言程序设计教程(第三版)课后习题6.3 (C语言代码)浏览:946 |
C语言训练-大、小写问题 (C语言代码)浏览:614 |
校门外的树 (C语言代码)浏览:702 |