题目描述:写出一个判断素数的函数Isprime(),主函数实现输出100-1000的所有素数,每行输出10个
#include<stdio.h>
#include<math.h>
int Isprime(int n)
{
int i,k=1;
for(i=1;i<=sqrt(n);i++)
{
if(n%i==0) {
k=0;
break; }
}
return k;
}
void main()
{
int n,count=0;
for(n=100;n<=1000;n++)
{
if(Isprime(n)==1)
{
printf("%d\t",n);
count++;
}
if(count%10==0)
printf("\n");
}
return;
}
问题描述:以上是我的代码,但是输出结果为
第6行i=1, 改为i=2,因为素数是除了1和它本身没有其他因素,所以i要从2开始;
然后把打印换行放到打印素数那个if里面,即当素数每10个打印一行换行。
修改如下:
参考链接:
#include<stdio.h>
#include<math.h>
int Isprime(int n) {
int i,k=1;
// 如果此函数需要用于判断其他范围的数,如小于2的数是否为素数,可以加个判断
// 当小于2的数都不是素数, 返回0
// https://www.zhihu.com/question/279186260
// if(n<2) {
// return 0;
// }
// https://baike.baidu.com/item/%E8%B4%A8%E6%95%B0/263515
for(i=2; i<=sqrt(n); i++) {
if(n%i==0) {
k=0;
break;
}
}
return k;
}
int main() {
int n,count=0;
for(n=100; n<=1000; n++) {
if(Isprime(n)==1) {
printf("%d\t",n);
count++;
if(count%10==0)
printf("\n");
}
}
return 0;
}