c语言,输出1-100之间的所有素数,运用自定义函数!用循环来写。

如题所述

看代码:

#include <stdio.h>
#include <math.h>
// 判断是否是素数,是的话返回 1,不是返回 0
int is_prime(int num)
{
if (num < 2)
{
return 0;
}
int i, tmp = (int)sqrt(num);
for (i = 2; i <= tmp; ++i)
{
if (num % i == 0)
{
return 0;
}
}
return 1;
}
int main(int argc, char** argv)
{
    int i;
printf ("1 ~ 100 的素数:\n");
for (i = 1; i <= 100; ++i)
{
if (is_prime(i))
{
printf ("%d\n", i);
}
}

    return 0;
}

运行:

温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-11-18
#include <stdio.h>
int count = 0;
int i = 0;
int calc(int num){
for(i=1;i<=num;i++){
if(num%i==0){
count++;
}
if(count <= 2){
count = 0;
return num;
}
}
}
void main(){
for(i=1;i<=100;i++){
printf("1-100之内的素数有:%d",calc(i));
}
}
第2个回答  2015-11-18

#include <stdio.h>

#include <math.h>

inr prime(int n)

{int i;

for(i=2;i<=sqrt(x);i++)

    if(x%i==0) return 0;

return 1;

}

int main()

{int i;

 for(i=2;i<100;i++)

  if(prime(i)) printf("%5d",i);

printf("\n");

return 0;

}

本回答被网友采纳
第3个回答  2015-11-18
int IsPrime(int num)    //自定义判断素数函数
{
int i=2;
for(;i<=num/2;i++)
if(num%i==0)
return 0;
return 1;
}
void main()
{
int num;
printf("1-100的素数如下:\n");
for(num=2;num<=100;num++)
if(IsPrime(num))
printf("%d  ",num);
printf("\n");
}

第4个回答  推荐于2018-02-28
#include <stdio.h>
int isPrime(int n)
{
int i;
if (n < 2)return 0;
for (i = 2; i*i <= n; ++i){
if (n%i == 0)return 0;
}
return 1;
}
int main()
{
int i;
for (i = 1; i <= 100; i++){
if (isPrime(i)){
printf("%d ", i);
}
}
return 0;
}

本回答被网友采纳
相似回答