小M得到了n个互不相同的正整数ai,在这n个数中,某个数称为无倍数数当且仅当其他的数都不是它的倍数。请你帮小M找出这n个数中所有的无倍数数,并以升序输出。
# -*- coding: utf-8 -*- def find(a): flag = False idx = A.index(a) for i in range(idx + 1, len(A)): if A[i] % a == 0: flag = True break return flag if __name__ == '__main__': n = raw_input() A = sorted(map(int, raw_input().split(' '))) B = filter(lambda a: not find(a), A) print ' '.join(str(b) for b in B) + ' '就很奇怪的一个题目。。怎么都通过不了。
#include<iostream> #include<algorithm> using namespace std; int main() { int n; cin>>n; long long int arr[100001]; for(int i=0;i<n;i++) { cin>>arr[i]; } sort(arr,arr+n); long long int a[100001]; a[0]=arr[n-1]; int count=1; for(int i=n-2;i>=0;i--) { int flag=0; for(int j=n-1;j>i;j--) { if(arr[j]%arr[i]==0) { flag=1; break; } } if(flag==0) { a[count]=arr[i]; count++; } } for(int i=count-1;i>0;i--) { cout<<a[i]<<" "; } cout<<a[0]<<endl; }自行测试没问题
//没过,提示“请检查是否存在数组越界等非法访问情况”,哪位大佬帮忙解决一下 import java.util.List; import java.util.ArrayList; import java.util.Arrays; import java.util.Scanner; public class wubeishushu { public static void main(String[] args) { Scanner input = new Scanner(System.in); int n = input.nextInt(); int[] arr = new int[n]; for(int i = 0; i < n; i++) arr[i] = input.nextInt(); Arrays.sort(arr); List <Integer> list = new ArrayList<>(); if(n == 1) System.out.println(arr[0]); else { for(int i = arr.length-2; i >= 0; i--) { boolean flag = true; for(int j = i+1; j < arr.length; j++) { if(arr[j] % arr[i] == 0) { flag = false; break; } } if(flag) { list.add(arr[i]); } } if(list.size() > 0) { for(int k = list.size()-1; k >= 0; k--) System.out.print(list.get(k) + " "); } System.out.println(arr[arr.length-1]); } input.close(); } }
//怎么都通过不了 public class Main { public static void main(String[] args) throws IOException { BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); int count = Integer.parseInt(reader.readLine()); String[] str = reader.readLine().split(" "); ArrayList<Integer> list = new ArrayList<>(); for (String s : str) { list.add(Integer.parseInt(s)); } Collections.sort(list); for (int i = list.size() - 1; i >= 0; i--) { int max = list.get(i); for (int j = 0; j < list.size(); j++) { if (i == j) { break; } if (max % list.get(j) == 0) { list.remove(j); j--; i--; } } } for (Integer integer : list) { System.out.print(integer+" "); } } }
import java.util.*; public class Main { public static void main(String [] args){ Scanner in=new Scanner(System.in); int n=in.nextInt(); int Ai[]=new int[n]; for(int i=0;i<n;i++){ Ai[i]=in.nextInt(); } for(int i=0;i<n-1;i++){ for(int j=i+1;j<n;j++){ if(Ai[i]>Ai[j]) { int t=Ai[i]; Ai[i]=Ai[j]; Ai[j]=t; } } } for(int i=0;i<n;i++){ int count=0; for(int j=0;j<n;j++){ if(Ai[j]%Ai[i]!=0) { count++; } } if(count==n-1) System.out.print(Ai[i]+" "); } } }
n = input() n = int(n) num = [] ai = sorted(map(int,input().split())) for i in range(n): bo = True if ai[i]!=0: for j in range(i+1,n): if ai[j]%ai[i]==0: bo = False break if bo: num.append(ai[i]) print(' '.join(map(str,num))+' ')很奇怪的一道题,不知道咋回事就是过不了。。。