C语言 输出50-100间的所有素数,其中判断一个数是否为素数用函数完成。

#include <stdio.h> #include <math.h> int ss(int m) { int i,t1=0,q; q=sqrt(m); for (i=2;i<=9;i++) if (m%i==0) break; if (i>=q+1) t1=1; return(t1); } void main() { int i,t=0; for (i=50;i<=100;i++) { t=ss(i); if (t==1) printf("%4d",i); } } 后面带上每一句的解释··谢谢了·

#include <stdio.h> // 头文件用于输入输出 #include <math.h> // 头文件用于数学函数sqrt int ss(int m) // 判断m是否为素数的函数 { int i,t1=0,q; // 定义变量,t1表示素数或非素数 q=sqrt(m); // 对M开平方根q,只需要检查到q就可以了,后面的不需要 for (i=2;i<=9;i++) // 这里你的9错了,应该是q if (m%i==0) // 如果i可以整除m,那么m不是素数 break; // break跳出 if (i>=q+1) // 只有当2..q中没有数可以整除m,才会执行t1=1,即m为素数 t1=1; return(t1); // 返回是否为素数的标记t1 } void main() { int i,t=0; // 定义循环变量和临时变量 for (i=50;i<=100;i++) // FOR循环从50到100,逐个检查 { t=ss(i); // 调用ss函数,检查i是否为素数,保存在t中 if (t==1) // 当i是素数的时候, printf("%4d",i); // 打印出i } }
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2016-07-12
#include <stdio.h> #include <math.h> int ss(int m) { int i,t1=0,q; q=sqrt(m); //赋值q等于m的平方根 /*注意下面这个循环这里!里面那个i<=9应该是 i<=q``` `这个循环是用来判断q是不是素 数中的一个环节,如果q是素数··那么这个循环会执行到i = q才停止··那时再执行i++,也就是说··如果q是素数,那么经过这个循环i = q+1*/ for (i=2;i<=q;i++) if (m%i==0) break; /*这里就是利用上面的循环后的 i的值···如果m是素数,那么在此i = q+1,所以这个if就是“如果m是素数,那么t1就赋值为1.”*/ if (i>=q+1) t1=1; //返回t1的值 return(t1); } 主函数没什么好说的· void main() { int i,t=0; for (i=50;i<=100;i++) { t=ss(i); //调用ss函数 if (t==1) printf("%4d",i);//输出i的值 } }本回答被提问者采纳
第2个回答  2019-08-01
#include
//
头文件用于输入输出
#include
//
头文件用于数学函数sqrt
int
ss(int
m)
//
判断m是否为素数的函数
{
int
i,t1=0,q;
//
定义变量,t1表示素数或非素数
q=sqrt(m);
//
对M开平方根q,只需要检查到q就可以了,后面的不需要
for
(i=2;i<=9;i++)
//
这里你的9错了,应该是q
if
(m%i==0)
//
如果i可以整除m,那么m不是素数
break;
//
break跳出
if
(i>=q+1)
//
只有当2..q中没有数可以整除m,才会执行t1=1,即m为素数
t1=1;
return(t1);
//
返回是否为素数的标记t1
}
void
main()
{
int
i,t=0;
//
定义循环变量和临时变量
for
(i=50;i<=100;i++)
//
FOR循环从50到100,逐个检查
{
t=ss(i);
//
调用ss函数,检查i是否为素数,保存在t中
if
(t==1)
//
当i是素数的时候,
printf("%4d",i);
//
打印出i
}
}