После того, как вы определили, что число составное (а не простое), ваша работа завершена. Вы можете выйти из цикла с помощью break
.
while num > a :
if num%a==0 & a!=num:
print('not prime')
break # not going to update a, going to quit instead
else:
print('prime')
a=(num)+1
Кроме того, вы можете попытаться поближе познакомиться с некоторыми конструкциями в Python. Ваш цикл может быть сокращен до однострочного, который, на мой взгляд, хорошо читается.
any(num % a == 0 for a in range(2, num))
С некоторой помощью сообщества я нашел ответ.
Для XML вам нужно изменить способ сериализации:
Строка:
xStream.toXML(o, new OutputStreamWriter(stream, encoding));
изменен на строку
xStream.marshal(o, new CompactWriter(new OutputStreamWriter(stream, encoding)));
. Для JSON вы изменяете только способ создания XStream. Таким образом, инициализация XStream изменена на:
private final XStream xstreamOut = new XStream(new JsonHierarchicalStreamDriver() {
public HierarchicalStreamWriter createWriter(Writer writer) {
return new JsonWriter(writer, new char[0], "", JsonWriter.DROP_ROOT_MODE);
}
});
Обратите внимание, что используется 4-параметрический конструктор JsonWriter.
Используйте метод marschal в xstream с компактным устройством записи
xstream.marshal(someObject, new CompactWriter(out));
Спасибо, ваши посты помогли !!! Вот то, что я использую для преобразования в String.
String strXML = "";
XStream xs = new XStream();
StringWriter sw = new StringWriter();
xs.marshal(this, new CompactWriter(sw));
strXML = sw.toString();