跪求:C语言 任意输入一串数字,判断其中的非素数

来源:百度知道 编辑:UC知道 时间:2024/05/15 16:03:36
比如说我输入:1,2,3,4,5,6,7,8,9......
输出的非素数为:2,4,6,8,9......
这个程序怎么编写
请教各位大虾,帮帮我,非常紧急,最好24小时内给我答复
最好用WHILE语句控制循环,Orz...
并且还要用SINCE语句写出为什么这个是非素数
比如说:4 is not a prime number ,since 4=2*2

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>

int isprime(int n) /*素数?*/
{
int i,s;
s=(int)sqrt(n);
for(i=2;i<=s;i++){
if(n%i==0)
return 0;
}
return 1;
}

void main()
{
int n;
char s[200],*p; /*可以改长度*/
gets(s);
p=strtok(s,","); /*逗号可以改成其他的但必须是分隔符*/
while(p!=NULL){
n=atoi(p);
if(!isprime(n))
printf("%d ",n);
}
printf("\n");
}

#include<stdio.h>
#include<math.h>
int main()
{
int n,i,j;
scanf("%d,",&n);
while(n != -1)/*遇-1结束输入*/
{
for(i=2;i<=sqrt(n);i++)
{
if(n%i == 0)
printf("%d,",n);
}
scanf("%d,",&n);
}
}

测试:
输入:1,2,3,4,5,6,7,8,9